首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将Django root重定向到管理面板

将Django root重定向到管理面板
EN

Stack Overflow用户
提问于 2012-02-16 02:07:43
回答 1查看 2.7K关注 0票数 5

我正在尝试将Django站点根目录重定向到Django管理面板,并且我基本上已经启动并运行了它。然而,我注意到,除非项目URL中有一个尾随的斜杠,否则页面上的链接不会包含项目文件夹,而是尝试在站点根目录中查找应用程序。

因此,假设我有一个项目foo和一个应用程序bar。如果您访问http://server/foo/ (带有一个尾随斜杠),则一切正常,并且页面上的链接将转到http://server/foo/bar。但是,如果访问http://server/foo,则生成的链接将转到http://server/bar,这会生成404错误。

如果我将WSGIScriptAlias设置为指向/foo/而不是/foo,那么如果我导航到/foo,它将给出一个404错误。我尝试使用重定向在Apache conf中强制使用尾部斜杠,但最终生成了递归重定向(http://server/foo//////...)。我还没有尝试使用.htaccess文件,但我怀疑同样的事情可能会发生。

不过,我在urls.py中也做了同样的事情:

代码语言:javascript
运行
复制
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

我还尝试简单地向所有Django urls添加一个斜杠,如下所示:

代码语言:javascript
运行
复制
url(r'^(.*)/', include(admin.site.urls))

但它根本无法匹配项目根文件夹中的任何内容(尽管如果您导航到应用程序,这似乎可以正常工作)。

我使用的是带有mod_wsgi的Apache2.2,配置如下:

代码语言:javascript
运行
复制
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>

这是最有效的urls.py

代码语言:javascript
运行
复制
urlpatterns = patterns('',
  url(r'^', include(admin.site.urls)),
)

我已确保将APPEND_SLASH设置为True,但它似乎在根项目文件夹中不起作用。

EN

回答 1

Stack Overflow用户

发布于 2012-02-16 02:15:44

尝试在settings.py中将APPEND_SLASH设置为True。我也有类似的问题,这个解决了我的问题。它应该默认为True,但我必须显式设置它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9298820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档