2012-08-07 68 views
0

我去http://no-www.org/并复制他们的代码剪去www。httpd.conf没有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

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

您可以删除斜杠你的目标年底或添加分组之外的斜线:

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

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

真棒!非常感谢。我不知道为什么,但第二种方法不起作用,但是第一种方法。 :) – 2012-08-07 15:21:36