Django 1.3 URL重写
Django具有CommonMiddleware设置,默认情况下会在不以1结尾的URL后面加上斜杠. 例如: 但是,我得到的情况不是(2),而是(3)http://www.example.com//admin/,这给了我404错误. 这是正确的行为吗?解决404错误的一种方法是什么? 注意: ================================================== ==================== 更新: 问题出在nginx配置上,我写了将HTTP请求重定向到HTTPS的配置.
发生的是CommonMiddleware从https://www.example.com/admin重定向到http://www.example.com/admin/.再次击中nginx,并按照配置文件中的指定将URL重写为https://www.example.com/ $1,其中$1为“ / admin /”.这意味着最终的URL是https://www.example.com//admin/. 为了解决这个问题,我将重写规则更改为:
最佳答案
“这是正确的行为吗?”不,这不对.在使用Django的4年中,我从未见过这个特殊的问题.
测试CommonMiddleware导致这种情况的一种方法是在您的settings.py文件中将其注释掉,重新启动,然后查看是否出现相同的行为.使用独立的开发服务器并在有趣的地方粘贴指纹以查看谁在处理它也可能很有帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ruby-on-rails – SSH和-bash:fork:无法分配
- python – X-Forwarded-Proto和Flask
- nginx – 如何创建.onion网站?
- 使用IPhone的Nginx Apache2 LetsEncrypt无法显示
- 当响应位置的域发生变化时,使用nginx的proxy_red
- linux – NGINX没有获取Vagrant Synced文件夹中
- 如何使用非常永久链接(SEO友好的URL)在Nginx上与
- nginx 超时问题: upstream timed out (110: Conn
- ruby-on-rails-3 – 在Linode上托管Rails应用程
- nginx – 阻止通过HTTPS直接访问Web服务器IP