Я пытаюсь выполнить код для перенаправления перенаправления на django. Я предоставляю URL-адрес, и я хочу перенаправить предоставленный URL-адрес.Я не могу взять «?» символ в URL-адресе django url
в моем urls.py
:
urlpatterns = patterns('',
url(r'^redirect/(?P<name>.*)$', redirect),
# ...
)
, когда я проверить функцию со стандартной линии связи (например: google.com), она прекрасно работает.
, когда я проверяю функцию ссылкой, содержащей "?" характер, только часть перед «?» учитывается.
Пример:
"GET /redirect/http://www.polyvore.com/lords_liverpool_hey_jude_tee/thing?id=53713291 HTTP/1.1" 302 0
name = http://www.polyvore.com/lords_liverpool_hey_jude_tee/thing
?id=53713291
не учитывается ....
я, хотя это означает, что все .*
рода характер, не так?
Знаете ли вы, что происходит? и как взять URL-адрес entiere, какой персонаж он содержит?
большое спасибо за вашу помощь.
Я не думаю, что это поможет ему. Ему нужно начать с изучения регулярного выражения. – jpwagner
Проблема не в регулярном выражении. Речь идет о том, как URL-адрес работает со стандартом HTTP. Символ '?' Имеет особое значение, не забывайте об этом. Все после него воспринимается как параметры GET. –
В регулярном выражении есть способ избежать этого, это не проблема. Но в URL-адресе 'redirect/http: //domain.tld? Id = blabla' id = blabla - это строка запроса для адреса' redirect/http: // domain.tld', единственный способ избежать этого (не имея дело с уродливым случайным GET dict в представлении переадресации ...) заключается в том, чтобы избавиться от специальных символов, закодировав URL-адрес ... Шаблон URL-адреса здесь хорош, '. *' будет принимать все после 'redirect /' строка. –