Django为www子域重定向301

时间:2015-10-16 18:10:05

标签: python django .htaccess redirect mod-wsgi

我用Apache和mod_wsgi托管我的Django应用程序。它工作正常,直到我想从no" www"创建301重定向。到" www"。我改变了 .htaccess

RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com
RewriteRule ^(.*)$ http://www.example.com$1 [R=301,L] 

现在它始终从 www.example.com 重定向到:

http://www.example.com/index.wsgi/index.wsgi/ 

我收到了一个Page not found错误。我做错了什么?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

在一个域中使用重定向时, 你可以得到类似无限循环的东西。

例如,例如,第一次您的请求将正常工作。 但重定向后RewriteCond将再次检查当前主机==您的主机。 这是真的,因此对您的请求将添加您在之前的请求中收到的所有内容。

为了防止这种情况,您可以使用以下内容:

RewriteCond %{ENV:REDIRECT_FINISH} !^$
RewriteRule ^ - [L]
RewriteCond %{HTTP_HOST} ^example.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com$1 [R=301,L,E=FINISH:1]

前两行可以帮助您防止无限循环。