ApacheDjangoURL问题
我允许用户在mysite.com/go/query上提交查询\ 如果查询包含/Apache choke 从URL.py:ApacheDjangoURL问题,django,apache,url,Django,Apache,Url,我允许用户在mysite.com/go/query上提交查询\ 如果查询包含/Apache choke 从URL.py: (r'^go/(?P<querytext>.*)$', 'mysite.engine.views.go'), 结果: Not Found The requested URL /go/http:// was not found on this server. Apache/2.2.12 (Ubuntu) Server at ... 但是,如果我输入非URL引用
(r'^go/(?P<querytext>.*)$', 'mysite.engine.views.go'),
结果:
Not Found
The requested URL /go/http:// was not found on this server.
Apache/2.2.12 (Ubuntu) Server at ...
但是,如果我输入非URL引用值,它会起作用:
http://mysite.com/go/http:// 很好用
有什么想法吗?来自Django文档,看起来你应该只使用?p。。。。实现命名组时的符号
尝试通过删除?p或完成语法并将组命名为?p.*来修复正则表达式。在传递URL之前,您可能需要对其进行解码。您可以使用urllib.unquote执行此操作
您的httpd正在阻止编码的斜杠
尝试将AllowEncodeDSLASH添加到apache配置中对不起,HTML删除了它,我对它进行了编辑,以显示我在url.py中真正拥有的内容。正如你所指出的,不错!我甚至没有想到Apache是罪魁祸首。谢谢,我遇到了同样的问题。我怀疑Apache是原因,但我不知道有明确的设置。
Not Found
The requested URL /go/http:// was not found on this server.
Apache/2.2.12 (Ubuntu) Server at ...
>>> import urllib
>>> urllib.unquote("""http%3A%2F%2F""")
'http://'