看起来mod_rewrite搞乱了mod_wsgi的env变量(scumbag吃了SCRIPT_NAME或其他东西)。
只添加这一行:
RewriteEngine On
到我的httpd.conf导致我的基于Django的网站出现问题。我的别名如下:
WSGIScriptAlias /prefix /path/to/my/wsgi.py
现在两个网址:
example.com/prefix
和
example.com/prefix/
工作(有点......网站显示),但在前一种情况下(没有斜杠),所有网址都是由django错误生成的,例如:
example.com/some_url
而不是
example.com/prefix/some_url
如果我评论#RewriteEngine On
,问题就消失了,但我需要mod_rewrite。我该如何解决这个问题?
提前致谢。
答案 0 :(得分:5)
可能是[PT]
标志问题吗?为了将重定向的URI传递给WSGIScriptAlias
,您需要在重写规则的末尾添加PassThrough(PT)标志,例如:
RewriteEngine On
RewriteRule ^/external_url$ /internal_wsgi_url [PT]