2011-05-26 51 views
0

当我在我的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)。为什么有两个斜杠?

+0

可能重复:[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

回答

1

我想这应该是:

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

+0

^(。*)$ is关键的区别。 – 2011-05-26 03:36:31

+0

它没有工作:-( – Dheeraj 2011-05-26 03:45:55

+0

@David Chan很好,差异没有奏效。 – Dheeraj 2011-05-26 03:46:46