如何让mod_rewrite与mod_wsgi一起玩得很好?

pet*_*tr0 2 apache django mod-rewrite mod-wsgi

看起来mod_rewrite正在弄乱mod_wsgi的env变量(scumbag吃SCRIPT_NAME或其他东西).

只添加以下行:

RewriteEngine On
Run Code Online (Sandbox Code Playgroud)

到我的httpd.conf导致我的基于Django的网站出现问题.我的别名看起来像这样:

WSGIScriptAlias /prefix /path/to/my/wsgi.py
Run Code Online (Sandbox Code Playgroud)

现在两个网址:

example.com/prefix

example.com/prefix/

工作(有点......网站显示),但在前一种情况下(没有斜杠),所有网址都是由django错误生成的,例如:

example.com/some_url 代替

example.com/prefix/some_url

如果我注释掉#RewriteEngine On问题就消失了,但我需要mod_rewrite.我怎样才能解决这个问题?

提前致谢.

Ada*_*tan 5

这可能是[PT]旗帜问题吗?为了将重定向的URI传递给WSGIScriptAlias,您需要在重写规则的末尾添加PassThrough(PT)标志,例如:

RewriteEngine On
RewriteRule    ^/external_url$   /internal_wsgi_url    [PT]
Run Code Online (Sandbox Code Playgroud)

请参阅我在Pro网站管理员上的回答.