我们都知道wordpress统一了网站的入口,将所有的来访url全部跳转到index.php后对url进行判断而呈现不同内容。这样子做的好处就是不用建立太多的目录和文件而实现了网站的“伪静态”。但是当我们想在主站博客下面建立一个二级目录的站点的时候,我们如何实现二级站点的伪静态呢?要知道如果二级目录里面的文件不存在的话,就会跳到主站的index.php进而到达主站的404页面。
由于wordpress的重定向是由htaccess实现的,所以我们的第一反应就是修改.htaccess文件来实现二级站点的伪静态。
.htaccess
目标:假设二级目录为/juhe。当url访问的文件在该目录下不存在的时候,将其跳转到/juhe/index.php而不是主站的index.php。
RewriteRule ./juhe/. juhe/index.php
在试过以上类似代码二十多遍之后,我宣布失败。可能的原因是正则表达式没有写对,或者多个条件跳转相互之间会有影响,详情可以参考:wordpress中htaccess实现的重定向
虚拟主机实现跳转
我的wordpress博客用的是小张的横天主机,使用的是direct admin的控制面板。那天闲来乱翻的时候发现它有个Site Redirection的东东,于是就填写了一个301的定向,想将二级目录的重定向都引入index.php去。
结果:该url 重新定向功能只支持一些页面的重新定向,不支持目录的重定向。
借助wordpress实现
百般无奈之下想到既然wordpress的入口都是在index.php,那么我何不在这里把我的二级目录勾出来呢?
实现方案:
在index.php中添加代码,拆分url,如果url中包含了二级目录,我们就跳转到二级目录下的indxe.php中去。
代码如下:
//判断是否是juhe文件夹 by 吵吵 2013 $chao_req_uri = $_SERVER['REQUEST_URI']; $chao_req_uri_array = explode('/', $chao_req_uri); $chao_req_uri = $chao_req_uri_array[1]; if($chao_req_uri=='juhe') { include('juhe/index.php'); exit; }
如无特别说明,本博客文章皆为原创。转载请说明,来自吵吵博客。
原文链接:http://chaochaoblog.com/archives/1907
吵吵微信朋友圈,请付款实名加入:
我用的也是衡天主机,不太想折腾这个,哈哈
我一直没搞明白怎么设置二级域名,愁人……
我很想弄一个二级站点,就是不知道怎么去设置于编辑。