虚荣网址与管理网址 django 冲突
vanity urls clashing with admin urls django
我想在我的 django 应用程序中有虚荣心 urls,即 url 的用户个人资料,如 example.com/username
。我试着像所示那样做:
urlpatterns = patterns('',
#sitemap generation
url(r'^sitemap\.xml$', sitemap, {'sitemaps': sitemaps},name='django.contrib.sitemaps.views.sitemap'),
url(r'^grappelli/', include('grappelli.urls')), # grappelli URLS
url(r'^admin/', include(admin.site.urls)),
..other urls
#User Profile URLs
url(r'^(?i)(?P<username>[a-zA-Z0-9.-_]+)$','myapp.views.user_profile',name='user-profile'),
)
由于 url 虚荣模式 urls 最后出现在 url 模式中,所以 django 应该在最后匹配它。但是,即使它与管理员 urls 和 user_profile 视图发生冲突,呈现 'example.com/admin' url 而不是 default.What 是确保虚荣心的最佳方式-urls 不会与任何 django-urls 发生冲突?无论如何要编写正则表达式,以便它排除 django 应用程序的现有 url 集。
您的中间件将 /admin/
重定向到 /admin
。这与管理员的正则表达式不匹配,仅适用于您的用户个人资料。使用此中间件,您无法访问管理索引页面。
一种解决方案是仅在带斜杠的旧路径无效而新路径有效时才重定向。
我想在我的 django 应用程序中有虚荣心 urls,即 url 的用户个人资料,如 example.com/username
。我试着像所示那样做:
urlpatterns = patterns('',
#sitemap generation
url(r'^sitemap\.xml$', sitemap, {'sitemaps': sitemaps},name='django.contrib.sitemaps.views.sitemap'),
url(r'^grappelli/', include('grappelli.urls')), # grappelli URLS
url(r'^admin/', include(admin.site.urls)),
..other urls
#User Profile URLs
url(r'^(?i)(?P<username>[a-zA-Z0-9.-_]+)$','myapp.views.user_profile',name='user-profile'),
)
由于 url 虚荣模式 urls 最后出现在 url 模式中,所以 django 应该在最后匹配它。但是,即使它与管理员 urls 和 user_profile 视图发生冲突,呈现 'example.com/admin' url 而不是 default.What 是确保虚荣心的最佳方式-urls 不会与任何 django-urls 发生冲突?无论如何要编写正则表达式,以便它排除 django 应用程序的现有 url 集。
您的中间件将 /admin/
重定向到 /admin
。这与管理员的正则表达式不匹配,仅适用于您的用户个人资料。使用此中间件,您无法访问管理索引页面。
一种解决方案是仅在带斜杠的旧路径无效而新路径有效时才重定向。