.htaccess的规则会作用到子目录,如何让子目录不继承当前的规则?

2025-05-13 03:57:08
推荐回答(1个)
回答1:

通过.htaccess文件设置重定向,把二级域名绑定到指定的子目录。
先把要绑定的域名A记录或CNAME也指向和主域名所在的主机IP,然后可以.htaccess通过如下代码绑定相应文件夹:

代码如下
复制代码

RewriteEngine on

RewriteCond %{HTTP_HOST} ^bbs.domain.com$

RewriteCond %{REQUEST_URI} !^/bbs/

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ /bbs/$1

RewriteCond %{HTTP_HOST} ^bbs.domain.com$

RewriteRule ^(/)?$ bbs/index.php [L]

如果很多个二级域名都指定的话,每个都这么写.htaccess文件就会非常庞大臃肿,可以使用以下正则匹配写法:

代码如下
复制代码

RewriteCond %{HTTP_HOST} ^(bbs|blog|download).domain.com$
RewriteRule ^(.*)$ /%1/$1 [L, NC]

这样,会自动把bbs对应到bbs目录,blog对应到blog目录,download对应到download,要加新的域名时,只需要在上面那行按格式添加即可。