如何让mod_wsgi只处理Apache下的某些URL?

我有一个处理“/ 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。