美文网首页
Django对URL的重写处理(rewrite)

Django对URL的重写处理(rewrite)

作者: 大雄叔 | 来源:发表于2018-06-13 09:49 被阅读0次

问题:
在访问网站时,如果url以 ‘ / ’ 结尾,可以正常访问;http://www.example.com/ex/
如果没有以 ‘ / ’ 结尾,就会跳转至首页。 http://www.example.com/ex

解决:
改写URLconf里首页url的匹配模式,限制结尾。
改前:url(r'^', views.index, name='index'),
改后:url(r'^$', views.index, name='index'),

解析:

  1. url(r'^', views.index, name='index'),
    表示域名后带有任何字符都可以匹配到
    url(r'^$', views.index, name='index'),
    表示域名后不带任何字符才能匹配到
  2. Django的默认设置中,启用了CommonMiddleware中间件,并APPEND_SLASH = True。
    这代表如果请求的URL没有以斜杠结束,并且在URLconf中没有匹配到,那么Django会在URL末尾添加斜杠,重写URL,形成新的URL。如果在URLconf中找到这个新URL,则Django将请求重定向到这个新URL(实现自动补全斜杠跳转)。否则,初始URL将照常处理(匹配不到,引发404)。
  3. 注:Django建议URLconf应该在末尾写 ‘ / ’
    正确的:url(r'^blog/$', views.index, name='index'),
    错误的:url(r'^/blog$', views.index, name='index'),
    不规范的:url(r'^blog', views.index, name='index'),

相关文章

  • Django对URL的重写处理(rewrite)

    问题:在访问网站时,如果url以 ‘ / ’ 结尾,可以正常访问;http://www.example.com/e...

  • apache URL重写

    URL重写 URL rewrite介绍 URL重写 一、URL重写介绍 Apached的重写功能,即是mod_re...

  • Nginx-11 地址重写 rewrite

    一、什么是Rewrite ​ Rewrite对称URL Rewrite,即URL重写,就是把传入Web的请求重...

  • 八、地址重写

    一、什么是Rewrite ​ Rewrite对称URL Rewrite,即URL重写,就是把传入Web的请求重定向...

  • Nginx Rewrite

    一:什么是rewrite rewrite是url重写,主要实现url地址重写,以及重定向,就是把传入web的请求重...

  • Nginx(七) URL重写(rewrite)配置

    一、Nginx rewrite概述 Rewite 规则作用Rewrite规则可以实现对url的重写,以及重定向 作...

  • Nginx 提高篇

    Rewrite的使用 Rewrite通过ngx_http_rewrite_module模块支持url重写、支持if...

  • Nginx总结之Rewirte

    Rewrite对称URL Rewrite,即URL重写,就是把传入Web的请求重定向到其他URL的过程。 Rewr...

  • nginx--rewrite

    URL重写(rewrite)介绍 rewrite的组要功能是实现RUL地址的重定向。Nginx的rewrite功能...

  • Rewrite实例

    1.什么是Rewrite 实现url地址重写或url地址跳转 2.Rewrite相关模块 set设置变量if 负...

网友评论

      本文标题:Django对URL的重写处理(rewrite)

      本文链接:https://www.haomeiwen.com/subject/jyideftx.html