Apache服务器通过Rewrite规则绑定域名目录

使用虚拟主机时,由于不能自定义VirtualHost,因此只能通过重写规则来绑定域名和目录。前提是服务器允许使用.htaccess并启用了重写规则。

配置信息

这是最简单的一个示例,直接将具体域名跟具体目录绑定,也可以通过正则的方式来处理。域名与子目录绑定的核心就是重写规则。注意排除绑定到的目录,否则会导致重定向死循环。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    RewriteCond %{HTTP_HOST} ^www\.domain\.com$ [NC]
    RewriteCond %{REQUEST_URI} !^/ui/
    RewriteRule ^(.*)$ ui/$1 [L,QSA]

    RewriteCond %{HTTP_HOST} ^api\.domain\.com$ [NC]
    RewriteCond %{REQUEST_URI} !^/api/
    RewriteRule ^(.*)$ api/$1 [L,QSA]
</IfModule>

参考文章