1

我在 URL 调度方面遇到了一些问题。这是我的规则:

urlpatterns += patterns('proxy.views',
    (r'^$', 'proxyviews.index'),
    (r'^go/(?P<url>\S+)', 'proxyviews.go'),
    (r'^proxy/(\S+)$', 'proxyviews.proxy'),
)

如果我给它下一个 URL:“http://myproxy.com/go/http://foo.bar”,它将是“http://myproxy.com/go/http:/foo.bar”——在“go/http:”之后加一个斜线。我不确定这里有什么问题。你有什么想法?谢谢。

4

1 回答 1

1

实际上,在您的网址中,您提供的是原始字符串,因此“\”仅表示“\”。为了更好地工作,请使用url encode

例如,而不是

http://myproxy.com/go/http://foo.bar

你应该给 url 作为

http://myproxy.com/go/http%3A%2F%2Ffoo.bar

此外,您还应该编码“%”,这样更好

http://myproxy.com/go/http%253A%252F%252Ffoo.bar

谢谢

于 2012-10-04T19:46:29.450 回答