首页 文章

Django为www子域重定向301

提问于
浏览
0

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

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

现在它始终从_915023重定向到:

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

我得到一个页面未找到错误 . 我做错了什么?我该如何解决这个问题?

1 回答

  • 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]
    

    前两行帮助您防止无限循环 .

相关问题