HtAccess:强制WWW但保留子域掩码

时间:2014-02-11 01:22:07

标签: apache .htaccess mod-rewrite

我正试图强迫.www所以Google不会两次拿起我的网站,但是当我使用[P]时我的子域名不再屏蔽。

RewriteEngine on

RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} ^yourdomain.com [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTP_HOST} !^((www\.)?)domain\.com [NC] 
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com
RewriteRule ^(.*)$ http://domain.com/website/%1$1 [L,NC,P]

当我访问蒙面域时,它只是重定向而不再是掩码。如果我取出顶部的子域名工作正常,但它不会强制.www

1 个答案:

答案 0 :(得分:1)

尝试更改规则的顺序:

RewriteEngine on

RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/website/%1/$1 [L,P]

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