.htaccess实现域名绑定到子目录实现多站点

SJY发表于:2013年09月17日 00:00 • 阅读:

有些美国空间,可以做多个子站点,但只能做一个主站。可以用.htaccess实现域名绑定到子目录实现多站点。
先设置停靠域将各域名绑定到主机,然后新建目录directory,再编辑根目录下的隐藏文件.htaccess,添加如下规则:

根目录下的.htaccess

# BEGIN Multisite
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www.)?abc.org$
RewriteCond %{REQUEST_URI} !^/directory/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /directory/$1
RewriteCond %{HTTP_HOST} ^(www.)?abc.org$
RewriteRule ^(/)?$ directory/index.php [L]
</IfModule>
# END Multisite

此时装在子目录下的站点如果开启静态化,可能会在该目录下创建.htaccess文件来配置重写规则
但是这种情况下访问会出错,会访问到根目录下的index.php
解决办法很简单,列如wordpress增加的规则需要添加下面红色部分(点前后各有一空格):
注:每次重新配置固定链接重写规则后,都要重新按此修改。

子目录下的.htaccess

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /directory/index.php [L]
</IfModule>
# END WordPress

注:如果不是多站点,而只是想把wordpress放在子目录,用原来的顶级域名访问,则只须在后台设置-常规里
WordPress 地址(URL)http://abc.com//directory
站点地址(URL)http://abc.com

欢迎转载,但请保留原文地址 http://www.sjyhome.com/apache/multiple-sites.html

回复(0)