本方法是使用.htaccess伪静态(URL重写)绑定域名到子目录实现子站点,可用于解决虚拟主机只能放一个网站的限制。
Apache主机一般支持.htaccess伪静态,即可以实现绑定域名到子目录、一个空间多个站点。
应用举例:绑定a.zhangwenbao.com到a目录
根目录下.htaccess内容
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^a\.zhangwenbao\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/htaccess/
RewriteRule ^(.*)$ htaccess/$1?Rewrite [L,QSA]
</IfModule>
即使HTTP_HOST中的“.”不加反斜杠,也能够实现绑定a.zhangwenbao.com,因为“.”可以匹配任意一个字符。
a目录下的.htaccess内容
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^a\.zhangwenbao\.com$ [NC]
RewriteRule (.*) http://a.zhangwenbao.com/$1 [L,R=301]
RewriteCond %{REQUEST_URI} ^\/a\/ [NC]
RewriteCond %{QUERY_STRING} !^(.*)?Rewrite
RewriteRule ^(.*)$ /%{REQUEST_URI}/%{REQUEST_URI}/$1?Rewrite [L,QSA]
</IfModule>
当然,如果对绑定子目录的要求不高的话,子目录下就不需要建立.htaccess文件了。
发表回复