吵吵   2013-03-26  阅读:2,087

我们都知道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 重新定向功能只支持一些页面的重新定向,不支持目录的重定向。

direct admin

借助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;
}

吵吵微信朋友圈,请付款实名加入:

吵吵 吵吵

3条回应:“wordpress下二级站点伪静态的实现”

  1. 小郭博客说道:

    我用的也是衡天主机,不太想折腾这个,哈哈

  2. 有点蓝说道:

    我一直没搞明白怎么设置二级域名,愁人……

  3. 李凯成博客说道:

    我很想弄一个二级站点,就是不知道怎么去设置于编辑。

发表评论

电子邮件地址不会被公开。 必填项已用*标注