我已经设置了一个带有mod_wsgi的Apache Web服务器,并成功修改了DjangoBB的basic_project
,以便在Apache的/forum/
子树下从Apache调用。我遇到的问题是WSGI应用程序接收(正确)没有/forum/
前缀的URL,但在结果页面中生成没有任何前缀的URL。
问题示例:打开http://site/forum/
会显示DjangoBB论坛的起始页面; Log In
链接指向http://site/account/signin/
,而不是所需的http://site/forum/account/signin
。
如何让DjangoBB应用生成的所有网址都包含自定义前缀(在我的情况下为/forum/
)?
更新(根据要求):
配置项目以供在WSGI下使用的httpd.conf
部分:
WSGIPythonPath /var/www/forum:/var/www/forum/xforum:/var/www/forum/venv/lib/python2.7/site-packages
WSGIScriptAlias /forum /var/www/forum/xforum/wsgi.py
<Directory /var/www/forum/xforum>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
请注意,如果不同时包含项目目录(…/forum/xforum
)及其父目录(…/forum
),则WSGI应用程序无法正常运行。
答案 0 :(得分:0)
在项目的settings.py
中,FORCE_SCRIPT_NAME
应该是项目的网址开头的前缀,并带有斜杠(/
):
就我而言,它应该是:
FORCE_SCRIPT_NAME = '/forum'