2009-05-07 5 views
0

Я использую Intelligencia UrlRewriter для проекта.Intelligencia.UrlRewriter

Он отлично работает, чтобы переписать URL-адреса, введенные в браузере.

Например, если я ввожу

http://localhost/People 

Это время правильно переписать так:

http://localhost/People.aspx 

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

Кто-нибудь знает, есть ли в любом случае доступ к этому оригинальному, дружественному URL-адресу? Или я слишком поздно?

ответ

2

Got это ребята.

@Nick Allen and Pure.Krome: Спасибо за помощь!

Я нашел кусок данных в:

HttpContext.Current.Request.RawUrl 

Если она существует в ServerVariables, я не мог видеть его, но в заключение, данные там, так что я не должен плакать себя sleep :)

Хорошо. Еще раз спасибо!!

+0

хорошо сделано. я не видел этого сообщения и имел отладочную игру с моим кодом, а также нашел это. хех :) молодец! u может отметить ваш собственный ответ, через несколько дней. –

+0

Спасибо за это, я искал способ (или документацию), чтобы получить дружественный URL-адрес, чтобы переопределить действие формы asp - теперь я могу! : D Еще раз спасибо. –

0

Я использую его и был для .. er .. 2 года теперь я думаю. (Спасибо Gawd IIS7 и MVC здесь!)

в любом случае, может у проверить IIS Server Variables для всех из них и расскажите нам, что вы получите ...

  1. PATH_INFO
  2. URL
  3. SCRIPT_NAME

например (это фрагмент из PATH_INFO для страницы я создал, который сбрасывает весь переменный запрос): -

PATH_INFO: [/admin/Miscellaneous.aspx]

и получить его ..

Request.ServerVariables["PATH_INFO"] 

Держите нас в курсе.

+0

@PureKrome: Эй! Приветствия на быстрый ответ! Request.ServerVariables ["PATH_INFO"], к сожалению, возвращает /people.aspx, и я ищу/People /. Но похоже, что вы думаете, о чем я думал. Таким образом, я получил все серверные переменные, выводимые в непосредственном окне при отладке. Затем я искал вывод для слова «люди», но каждая ссылка была на people.aspx ... заставляя меня думать, что дружественный URL недоступен через переменные сервера. Конечно, я хотел бы, чтобы меня оправдали! Любые другие идеи? –

0

Правила перезаписи Intelligencia хранятся в файле web.config, который является разборчивым. Таким образом, вы могли бы пройти правила в web.config, чтобы найти соответствие и использовать согласованную стоимость оттуда

Очевидно, что это не будет работать для сопоставления с образцом, только явные правила, такие, как в вашем примере

+0

тяжелый, но умелый, если вы действительно тоже. хорошая идея. –

+0

@Nick: Спасибо за идею. К сожалению, я использую шаблоны в своих матчах, поэтому может быть сложно. То, что мне действительно очень нравится, - это лишь некоторый способ добраться до исходного URL-адреса от какого-либо объекта .net ... hrmmm ... Я просто не уверен, возможно ли это. К тому времени, когда я пытаюсь добраться до этого в коде, я подозреваю, что информация, которую я получил, была потеряна в эфире ... –

1
Request.PathInfo 
Request.QueryString 

Какой вы используете, зависит от того, если вы переписать default.aspx?myvar или default.aspx/myvar