Han*_*ele 5 python apache django mod-wsgi django-admin
我正在尝试将Django站点根目录重定向到Django管理面板,我大部分时间都已启动并运行.但是,我注意到,除非项目URL中有一个尾部斜杠,否则页面上的链接不包含项目文件夹,而是尝试在站点根目录中查找应用程序.
所以,说我有一个项目foo和一个应用程序bar.如果你访问http://server/foo/(带斜杠),一切正常,页面上的链接就转到了http://server/foo/bar.但是,如果有人访问http://server/foo,则生成的链接会http://server/bar转而生成404错误.
如果我设置WSGIScriptAlias指向/foo/而不是/foo,如果我导航到它将会给出404错误/foo.我尝试使用Redirect在Apache conf中强制使用尾部斜杠,但最终我生成了一个递归重定向(http://server/foo//////...).我还没有尝试使用.htaccess文件,但我怀疑可能会发生同样的事情.
urls.py然而,我尝试了同样的事情:
url(r'^$', redirect_to, {'url': '/'}), # goes to server root http://server/
url(r'^$', redirect_to, {'url': 'foo/'}), # goes to http://server/foo/foo
url(r'^$', redirect_to, {'url': '/foo/'}), # infinite redirect
Run Code Online (Sandbox Code Playgroud)
我也尝试过简单地向所有Django网址添加斜杠:
url(r'^(.*)/', include(admin.site.urls))
Run Code Online (Sandbox Code Playgroud)
但是它无法匹配项目根文件夹中的任何内容(尽管如果你导航到应用程序,那似乎工作正常).
我正在使用带有mod_wsgi的Apache 2.2,这里是配置:
Alias /static "C:/DJANGO~1/apps/django/django/contrib"
<Directory 'C:/DJANGO~1/apps/django/django/contrib'>
Order allow,deny
Allow from all
</Directory>
WSGIScriptAlias /foo "C:/Djangostack/apps/django/scripts/django.wsgi"
<Directory 'C:/Djangostack/apps/django/scripts'>
Order allow,deny
Allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)
而这urls.py主要是有效的:
urlpatterns = patterns('',
url(r'^', include(admin.site.urls)),
)
Run Code Online (Sandbox Code Playgroud)
我已经确定APPEND_SLASH设置为True,但它似乎在根项目文件夹中不起作用.
| 归档时间: |
|
| 查看次数: |
2274 次 |
| 最近记录: |