0

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

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

但是,发生的事情是在基本 url 的末尾有一个额外的斜杠。

示例:learntodancetango.com --> learntodancetango.com 好

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

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

谢谢!,大卫

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

4

1 回答 1

1

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

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

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

或者

RewriteRule ^/(.*)$ http://%1/$1 [R=301,L] 
于 2012-08-07T06:28:35.413 回答