Как читать переписанный URL в asp.net 3.5 - PullRequest
0 голосов
/ 22 ноября 2011

Как читать переписанный URL.Если я не использую .aspx в своем переписанном URL, тогда «Request.RawUrl» не работает.Он возвращает исходный URL.

Пожалуйста, предложите, если у вас есть какое-либо решение для этого.Я использую Ionics Isapi Rewrite Filter (IIRF).

Например, если я переписал:

http://<mywebsite>/users.aspx?id=12&name=amitava

до

http://<mywebsite>/profile/12/amitava

Теперь на той же странице,в какой-то момент я хочу получить этот URL перезаписи с целью указания обратного URL в ссылке для входа.Теперь ссылка для входа должна быть:

http://<mywebsite>/login.aspx?ReturnUrl=/profile/12/amitava

или

http://<mywebsite>/login.aspx?ReturnUrl=http://<mywebsite>/profile/12/amitava

Как правильно этого добиться?Спасибо.

Ответы [ 2 ]

1 голос
/ 22 ноября 2011

Для IIRF это называется unmangling и может быть достигнуто с помощью модификатора U.

Из руководства IIRF :

U = Сохранить исходный URL-адрес в серверной переменной HTTP_X_REWRITE_URL

Просто добавьте модификатор U в RewriteRule, для которого вы хотите сохранить исходный URL-адрес.Например:

RewriteRule ^yourexpression$ yourrewrittenurl [I,U,L] 

Затем в коде вашей страницы вы можете получить доступ к исходному URL-адресу, например так:

Request.ServerVariables("HTTP_X_REWRITE_URL")

См. Также мой ответ здесь

0 голосов
/ 22 ноября 2011

Вы используете модуль перезаписи IIS? Если вам нужно, HttpContext.Current.Request.RawUrl должен предоставить вам переписанный URL, а HttpContext.Current.Request.Url.OriginalString должен дать вам не переписанный URL.

...