RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.new.domain.com [NC]
RewriteRule ^(.*)$ http://new.domain.com/$1 [L,R=301]
为什么我输入http://www.new.domain.com时没有重定向到http://new.domain.com?
.htaccess文件位于正确的文件夹中(它有更多的重写并且它们可以工作)
答案 0 :(得分:2)
RewriteCond中的regexp语法略有不同:使用www.new.domain.com
测试严格相等的正确方法(最多不同于大小写)是
RewriteCond %{HTTP_HOST} ^www\.new\.domain\.com$ [NC]
或
RewriteCond %{HTTP_HOST} =www.new.domain.com [NC]
那就是说,那些错误应该不能阻止你的重写规则工作:你原来的RewriteCond会匹配www.new.domain.com
就好了,它也匹配其他一些字符串(比如{{1} })。事实上,我在自己的wwwXnewYdomainZcomFOOBAR
文件中有一组非常相似的规则,它们的工作正常:
.htaccess
您的代码和我的代码之间的大多数差异纯粹是装饰性的。如果您没有RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^vyznev\.net$
RewriteCond %{HTTP_HOST} ^(www\.)?vyznev\.net$ [NC]
RewriteRule ^(.*) http://vyznev.net/$1 [NS,L,R=permanent]
指令,我可以看到唯一可能存在的重大问题;你应该加一个,如果只是为了避免以后的潜在问题。尽管如此,据我所知,没有一个不应该阻止你至少某些重定向,即使它可能不是你期望的URL。