.htaccess在root中不干扰子域规则?

时间:2013-09-12 14:34:03

标签: regex apache .htaccess mod-rewrite subdomain

在主域的根目录中,我有这个.htaccess规则,以便每个非www网址都会重定向到 www.domain.com的URL:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

然后我在我的VPS上通过Cpanel设置子域(它将子域添加为子目录,即/ sub),即:

sub.domain.com

现在所有的网址都被重定向了 到:

www.subdomain.com urls

我只需要非www网址,即:

www.sub.domain.com -> sub.domain.com
sub.domain.com -> sub.domain.com

如何让domain.com的根.htaccess不会干扰子域.htacess规则?

因为我将添加更多子域名,这将需要他们自己的htaccess规则,并且都是非www,我该怎么办?

1 个答案:

答案 0 :(得分:0)

您可以添加其他条件并仅检查“domain.com”:

RewriteCond %{HTTP_HOST} ^domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

或:

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^[^.]+\.[a-z]{2,4}$ [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]