站长必学-.htaccess实现域名绑定到子目录实现多站点
2014年09月05日
技术资料
2184 views
有些美国空间,可以做多个子站点,但只能做一个主站。可以用.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 . /beikel/index.php [L]
-
</IfModule>
-
# END WordPress
注:如果不是多站点,而只是想把wordpress放在子目录,用原来的顶级域名访问,则只须在后台设置-常规里
WordPress 地址(URL)http://beikel.net/xxx
站点地址(URL)http://beikel.net
赞赏