我有一个处理“/ admin /”和“/ myapp /”的Django应用程序。 所有其他请求应该由Apache处理。
我试过使用LocationMatch,但我不得不写一个负面的正则expression式。 我已经用/ admin /前缀尝试了WSGIScriptAlias,但是随后wsgi_handler接收到/ admin / part中断的请求。
有一个更简洁的方法,使mod_wsgi只处理特定的请求?
使用:
WSGIScriptAliasMatch ^/(admin|myapp) /some/path/django.wsgi/$1
这应该保留SCRIPT_NAME作为网站的根目录,以便urls.py仍适用于以admin和myapp开头的条目。
在我的apacheconfiguration中只使用一个别名一直为我工作:
Alias /media /sites/mysite.org/www/media <Location /media> Order allow,deny Allow from all </Location>
它在mod_wsgi靠近之前得到处理。
从django书http://www.djangobook.com/zh/beta/chapter21/ :
如果你在一个子目录下部署Django – 也就是在更深层的“/” – Django不会修剪你的URL模式的URL前缀。 所以,如果你的Apacheconfiguration如下所示:
<Location "/mysite/"> SetHandler python-program PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE mysite.settings PythonDebug On </Location>
你所有的URL模式都需要以“/ mysite /”开头。 为此,我们通常build议在您的域或虚拟主机的根目录下部署Django。