www 子域的 Django 重定向 301
Django redirect 301 for www Subdomain
我在使用 Apache 和 mod_wsgi 托管我的 Django 应用程序。它工作正常,直到我想创建一个从 "www" 到 "www" 的 301 重定向。我改变了 .htaccess:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com
RewriteRule ^(.*)$ http://www.example.com [R=301,L]
现在总是从 www.example.com 重定向到:
http://www.example.com/index.wsgi/index.wsgi/
然后我收到“找不到页面”错误。我做错了什么?我该如何解决这个问题?
当您在一个域内使用重定向时,
你可以得到类似无限循环的东西。
例如,例如,您的请求第一次可以正常工作。
但是在重定向后 RewriteCond 将再次检查当前主机是否 == 你的主机。
这是真的,所以您的请求将添加您在之前的请求中收到的所有内容。
为防止这种情况,您可以使用如下内容:
RewriteCond %{ENV:REDIRECT_FINISH} !^$
RewriteRule ^ - [L]
RewriteCond %{HTTP_HOST} ^example.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com [R=301,L,E=FINISH:1]
前两行帮助你防止无限循环。
我在使用 Apache 和 mod_wsgi 托管我的 Django 应用程序。它工作正常,直到我想创建一个从 "www" 到 "www" 的 301 重定向。我改变了 .htaccess:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com
RewriteRule ^(.*)$ http://www.example.com [R=301,L]
现在总是从 www.example.com 重定向到:
http://www.example.com/index.wsgi/index.wsgi/
然后我收到“找不到页面”错误。我做错了什么?我该如何解决这个问题?
当您在一个域内使用重定向时, 你可以得到类似无限循环的东西。
例如,例如,您的请求第一次可以正常工作。 但是在重定向后 RewriteCond 将再次检查当前主机是否 == 你的主机。 这是真的,所以您的请求将添加您在之前的请求中收到的所有内容。
为防止这种情况,您可以使用如下内容:
RewriteCond %{ENV:REDIRECT_FINISH} !^$
RewriteRule ^ - [L]
RewriteCond %{HTTP_HOST} ^example.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com [R=301,L,E=FINISH:1]
前两行帮助你防止无限循环。