7

我想将所有不包含的 URL 重定向wwwwww

我用这个:

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

现在我需要一个子域不要像这样重定向,否则会出错。

所以我想重定向任何不以 sub 或wwwto开头的 URLwww.example.com

我怎样才能做到这一点 ?谢谢

4

3 回答 3

22

你需要一秒钟RewriteCond。您可以应用任意数量的RewriteRule.

假设任何不需要sub.mydomain.com的东西www.mydomain.com,这里是你的代码:

RewriteCond %{HTTP_HOST} !^sub.mydomain.com$
RewriteCond %{HTTP_HOST} !^www.mydomain.com$
RewriteRule ^(.*) http://www.mydomain.com/$1 [QSA,L,R=301]

|但是您可以使用正则表达式中的竖线 ( ) 字符进一步简化此过程:

RewriteCond %{HTTP_HOST} !^(sub|www).mydomain.com$
RewriteRule ^(.*) http://www.mydomain.com/$1 [QSA,L,R=301]
于 2012-08-06T15:17:43.557 回答
5
RewriteCond %{HTTP_HOST} !^(.*)\.(.*)\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

这适用于所有域,不包括任何子域。玩得开心。

于 2016-03-31T07:19:14.540 回答
3

我尝试了 Scott S 的答案,但没有奏效,所以我修改为使用我用于一般 301 的答案:

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

它就像一个魅力

于 2015-04-02T11:20:52.643 回答