2

我正在使用 .htaccess 将用户从多个旧域重定向到新域。像这样的东西:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{HTTP_HOST} oldsite1.com
RewriteRule ^(.*)$ http://newsite.com%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTP_HOST} oldsite2.com
RewriteRule ^(.*)$ http://newsite.com%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTP_HOST} oldsite3.com
RewriteRule ^(.*)$ http://newsite.com%{REQUEST_URI} [R=301,L]

但是,我想知道是否可以使用 NOT 运算符重定向除 newsite.com 之外的任何域,如下所示:

Options +FollowSymLinks
RewriteEngine On

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

非常感谢!

4

1 回答 1

1

官方手册:http ://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritecond

您放置!=在错误的位置 PLUS%{HTTP_HOST}仅包含域名,因此不应存在任何协议:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{HTTP_HOST} !=newsite.com
RewriteRule ^(.*)$ http://newsite.com%{REQUEST_URI} [R=301,L]
于 2012-04-26T16:05:02.160 回答