URL重写是接受任何前缀(子域)

时间:2014-09-11 05:05:09

标签: php apache .htaccess mod-rewrite

我想通过输入http: // mysite . com或只是mysite来重定向键入输入网站的用户。 com(没有www)到www . mysite . com。打击URL重写条件和我目前在.htaccess中使用的规则

   RewriteCond %{HTTP_HOST} .
   RewriteCond %{HTTP_HOST} !^www\. [NC]
   RewriteRule ^ http%{ENV:protossl}://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

这是正常运作但我最近发现了另一个问题。该网站正在接受请求子域名的请求,例如abc.mysite.comxyz.mysite.com或anythingyoutype.mysite.com以及前缀www(www.antyingyoutype.mysite.com)。这不是我们想要的。我不确定这个问题是否存在,因为我没有提交重写规则,或者还有其他因素导致了这个问题。请帮我解决。

我的网站在Drupal7 + LAMP + Ubuntu环境中运行

1 个答案:

答案 0 :(得分:0)

保持这样的规则只将www添加到主网站:

RewriteCond %{HTTP_HOST} ^mysite\.com$ [NC]
RewriteRule ^ http%{ENV:protossl}://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

(可选)如果要阻止所有其他通配符域,请使用此规则:

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^[^.]+\.mysite\.com$ [NC]
RewriteRule ^ - [F]