Jak*_*ake 8 apache django mod-wsgi http-status-code-301
如何在django站点中将301的所有请求重定向到domain.com/...到www .domain.com/...
显然这不能在urls.py中完成,因为你只在那里获得了URL的路径部分.
我不能在.htaccess中使用mod重写,因为.htaccess文件在Django下没有任何作用(我认为).
我猜中间件或apache conf中的东西?
我正在使用mod WSGI在Plesk的Linux服务器上运行Django
Gra*_*ton 18
有人指出的WebFaction讨论对于配置来说是正确的,你只需要自己应用它而不是通过控制面板.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)
放入.htaccess文件,或在适当的上下文中的主Apache配置中.如果在主Apache配置中的VirtualHost内部,您将ServerName为www.example.com,ServerAlias为example.com,以确保虚拟主机处理这两个请求.
如果您无权访问任何Apache配置,如果需要,可以使用围绕Django WSGI应用程序入口点的WSGI包装器来完成.就像是:
import django.core.handlers.wsgi
_application = django.core.handlers.wsgi.WSGIHandler()
def application(environ, start_response):
if environ['HTTP_HOST'] != 'www.example.com':
start_response('301 Redirect', [('Location', 'http://www.example.com/'),])
return []
return _application(environ, start_response)
Run Code Online (Sandbox Code Playgroud)
修复此问题以在网站中包含URL并处理https是留给读者的练习.:-)
Lup*_*uch 15
该PREPEND_WWW设置就是这样做的.
| 归档时间: |
|
| 查看次数: |
7407 次 |
| 最近记录: |