httpd.conf没有www重定向额外/

时间:2012-08-07 03:45:34

标签: apache httpd.conf

我去了http://no-www.org/并复制了他们的代码,剪下来删除www。

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 

然而,正在发生的事情是在基本网址的末尾有一个额外的斜杠。

实施例: learntodancetango.com - > learntodancetango.com GOOD

www.learntodancetango.com - > learntodancetango.com// WEIRD

有什么建议吗?我可以提供其他任何帮助诊断吗?如果重要,这是一个Django网站。

谢谢! 大卫

编辑:或者,如果httpd conf是正确的,那么Django可能出于某种原因这样做了吗?

1 个答案:

答案 0 :(得分:1)

由于这是在服务器配置中,当重写规则尝试匹配时,URI中会出现一个前导斜杠。这意味着URI /在分组^(.*)$中匹配,结果目标为http://learntodancetango.com/ + $ 1,其中$ 1为/。所以2 //的。

您可以删除目标末尾的斜杠或在分组外添加斜杠:

RewriteRule ^(.*)$ http://%1$1 [R=301,L] 

RewriteRule ^/(.*)$ http://%1/$1 [R=301,L]