利用 htaccess 配置多域名虚拟主机

绑定

在虚拟主机提供商提供的管理平台绑定多个域名

解析

将多个域名解析到该虚拟主机

配置

在虚拟主机站点根目录下添加 .htaccess 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
# 域名1
RewriteCond %{HTTP_HOST} ^blog.clayidols.com$ [NC]
RewriteCond %{REQUEST_URI} !^/blog/
RewriteRule ^(.*)$ blog/$1?Rewrite [L,QSA]
# 域名2
RewriteCond %{HTTP_HOST} ^im.clayidols.com$ [NC]
RewriteCond %{REQUEST_URI} !^/im/
RewriteRule ^(.*)$ im/$1?Rewrite [L,QSA]
# 默认
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>

若想要阻止“主域名+文件路径”访问子站,可以在子站下添加 .htaccess 文件

1
2
3
4
5
6
7
8
9
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^blog.clayidols.com$ [NC]
RewriteRule (.*) http://blog.clayidols.com/$1 [L,R=301]
RewriteCond %{REQUEST_URI} ^/blog/ [NC]
RewriteCond %{QUERY_STRING} !^(.*)?Rewrite
RewriteRule ^(.*)$ /%{REQUEST_URI}/%{REQUEST_URI}/$1?Rewrite [L,QSA]
</IfModule>