霜天部落 | 关注LAMP高性能、高并发架构的设计与研究

将wordpress 绑定到子目录

现在越来越多的人开始使用国外的主机空间来安装wordpress。godaddy的豪华主机支持建多个站点,但是顶级域名会绑定到空间根目录。如果我们把wordpress搭建到根目录会导致根目录下特别乱,特别是当搭建多个站点的时候。那么我们把wordpress绑定到子目录,比如/blog/下行不行呢?

当然可以。

我从网上搜索了一下方法,基本上都是用.htaccess做rewrite的方式,但每个人的.htaccess写的也不同。经过我的测试,终于有个自己的固定的.htaccess。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} ^(.*\.)?frostsky.com$
RewriteCond %{REQUEST_URI} !^/frostsky.com/
RewriteRule ^(.*)$ /frostsky.com/$1

我的子目录为/frostsky.com/,只要把相应的域名和子目录做个修改就可以了。

btw.

我的站点在登录后台的时候,提示的路径不正确:
http://www.frostsky.com/wp-login.php?redirect_to=http://www.frostsky.com/frostsky.com/wp-admin/
路径中多了子目录frostsky.com,导致后台登录不成功。

修改方法:

用编辑器打开wp-config.php,在最后添加如下代码:

$_SERVER[‘REQUEST_URI’] = str_replace(‘/frostsky.com’, ”, $_SERVER[‘REQUEST_URI’]);
$_SERVER[‘SCRIPT_NAME’] = str_replace(‘/frostsky.com’, ”, $_SERVER[‘SCRIPT_NAME’]);
$_SERVER[‘PHP_SELF’] = str_replace(‘/frostsky.com’, ”, $_SERVER[‘PHP_SELF’]);
$_SERVER[‘PATH_INFO’] = str_replace(‘/frostsky.com’, ”, $_SERVER[‘PATH_INFO’]);

把其中的/frostsky.com换成你自己的子目录,然后保存,上传到空间中。