重写康德无法删除 www.从子域网址


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文件在正确的文件夹中(它有更多的重写,它们有效(

RewriteCond 中的正则表达式语法略有破坏:测试与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很好,它也只是匹配其他一些字符串(如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]

你的代码和我的代码之间的大多数差异纯粹是表面的。 如果您没有RewriteBase指令,我可以看到唯一潜在的重要问题;您绝对应该添加一个,即使只是为了避免以后的潜在问题。 不过,据我所知,没有一个不应该阻止你至少获得一些重定向,即使它可能不是你期望的URL。

最新更新