使用Django/Apache/mod_wsgi从foo.com到www.foo.com时使用双斜杠

使用Django/Apache/mod_wsgi从foo.com到www.foo.com时使用双斜杠,django,apache,mod-wsgi,virtualhost,http-status-code-301,Django,Apache,Mod Wsgi,Virtualhost,Http Status Code 301,我们有一个Django应用程序通过mod_wsgi在Apache上运行 我们的主域名是foo.com(不含www),但我们也希望管理www请求,通过301将它们重定向到主域名 我是这样安排的 <VirtualHost xxx.xxx.xxx.xxx:80> DocumentRoot /var/www/vhosts/foo.com/public ServerName foo.com ServerAlias www.foo.com Alias /media/

我们有一个Django应用程序通过mod_wsgi在Apache上运行

我们的主域名是foo.com(不含www),但我们也希望管理www请求,通过301将它们重定向到主域名

我是这样安排的

<VirtualHost xxx.xxx.xxx.xxx:80>

   DocumentRoot /var/www/vhosts/foo.com/public
   ServerName foo.com
   ServerAlias www.foo.com

   Alias /media/  /var/www/vhosts/foo.com/public/media/
   Alias /static/ /var/www/vhosts/foo.com/public/static/

   RewriteEngine On

   RewriteCond %{HTTP_HOST}    !=foo.com [NC]
   RewriteRule ^(.*)$          http://foo.com/$1 [L,R=301]


   <Directory /var/www/vhosts/foo.com/public>
       Order allow,deny
       Allow from all
       AllowOverride All
   </Directory>

   WSGIDaemonProcess foo.com processes=5 threads=30 display-name=%{GROUP}
   WSGIProcessGroup foo.com

   WSGIScriptAlias / /var/www/vhosts/foo.com/fooproject/fooproject/wsgi.py

   LogLevel debug
   ErrorLog /var/www/vhosts/foo.com/logs/error.log
   CustomLog /var/www/vhosts/foo.com/logs/access.log combined

</VirtualHost>
通常,该规则适用于PHP站点

可能是什么?有什么东西我可以看明白吗

另外,我已将Django
APPEND\u SLASH
设置为
False

更改

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


这可能是罪魁祸首吗<代码>http://foo.com/1美元我觉得不错。好吧,我以前没试过。这将修复使用页面而不是主页的呼叫。我现在正在更新这个问题,看看这是否有用(从Apache文档中提取):
RewriteRule^/(.+)http://foo.com/$1[L,R=301]
找到了。我被困在代理解析缓存或类似的地方@karthikr如果你想回答你的建议(重写规则^(.*$[L,R=301]),我很乐意将你的答案标记为正确。
RewriteRule ^(.*)$          http://foo.com/$1 [L,R=301]
RewriteRule ^(.*)$          http://foo.com$1 [L,R=301]