当我在我的httpd.conf文件中使用非使用的httpd.conf WWW到www - //错误
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
,为什么我的网站重定向到www.example.com// (www.example .COM // file.html)。为什么有两个斜杠?
当我在我的httpd.conf文件中使用非使用的httpd.conf WWW到www - //错误
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
,为什么我的网站重定向到www.example.com// (www.example .COM // file.html)。为什么有两个斜杠?
我想这应该是:
RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
编辑:
以上RewriteCond
可能是矫枉过正 - 这是为了只匹配不受www
之前的URL。然而,这应太:
RewriteCond %{HTTP_HOST} ^example.com
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
像陈大卫提到的,^(.*)$
是你错过了什么。 ^
和$
是正则表达式中的特殊字符。这里是解释正则表达式的字符串锚链接:http://www.regular-expressions.info/anchors.html
而且,这里是可以更详细地解释mod_rewrite的语法链接:http://httpd.apache.org/docs/current/mod/mod_rewrite.html
可能重复:[http://stackoverflow.com/questions/234723 /generic-htaccess-redirect-www-to-non-www](http://stackoverflow.com/questions/234723/generic-htaccess-redirect-www-to-non-www) – 2011-05-26 19:37:15