第一步是添加刚刚
AddHandler wsgi-script .wsgi
到您的 .htaccess 文件中,无需将 wsgi 建立为处理程序。这将对 django.wsgi 和 django.wsgi/whatever 的请求发送到您的 django 应用程序。
要使 URL 的 django.wsgi 部分消失,您需要使用 mod_rewrite。希望您的主机启用它。一个例子是
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /django.wsgi/$1 [QSA,PT,L]
如果 URL 匹配文件,它将提供文件,如果不匹配,则由 django 提供。另一种选择是
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !^/?static/
RewriteRule ^(.*)$ /django.wsgi/$1 [QSA,PT,L]
要对 /static/* 发出请求,请转到文件本身,其他所有内容都通过 django 进行。
然后您需要从生成的 URL 中隐藏 django.wsgi。这可以通过 django.wsgi 中的 sn-p 来完成
def _application(environ, start_response):
# The original application.
...
import posixpath
def application(environ, start_response):
# Wrapper to set SCRIPT_NAME to actual mount point.
environ['SCRIPT_NAME'] = posixpath.dirname(environ['SCRIPT_NAME'])
if environ['SCRIPT_NAME'] == '/':
environ['SCRIPT_NAME'] = ''
return _application(environ, start_response)
如果这不完全正确,请务必咨询http://code.google.com/p/modwsgi/wiki/ConfigurationGuidelines。我从那里提取了答案的大部分细节,但只是逐步将正确的部分放在一起。