ASP.NET UrlRewriter - Как написать RegEx для Root? - PullRequest
0 голосов
/ 22 октября 2010

Я пытался использовать UrlRewriter (Intelligencia.UrlRewriter.dll) в тестовом проекте.

Мой оператор перезаписи выглядит следующим образом:

<rewrite url="~/Sample/(.+)" to="~/Sample.aspx?Test=$1"/>

Это утверждение отлично работает для URL, например:

http://localhost:4188/RewriteTest/Sample/12345

или, скажем так:

http://RewriteTest.com/Sample/12345

И я могу получить значение «12345» в файле Sample.aspx как:

Label1.Text = "Test: " + Request.QueryString["Test"];

И когда я нажимаю на корневую ссылку, она успешно отображает Default.aspx:

http://localhost:4188/RewriteTest/ или http://RewriteTest.com/

То, что я хочу сделать, это снять «Sample» с оператора regex, чтобы я мог напрямую нажать http://RewriteTest.com/12345 и отобразить Sample.aspx, получив значение «12345». И, когда корень нажмет http://RewriteTest.com/, он просто отобразит Default.aspx, как сейчас.

Возможно ли это? Может ли выражение regex быть обновлено для чего-то другого для этой цели?

Спасибо,

Ниязи

1 Ответ

1 голос
/ 16 ноября 2010

Если ваш идентификационный код всегда будет состоять из 5 цифр, вы могли бы привязать регулярное выражение к этому:

<rewrite url="^~/([\d]{5})$" to="~/Sample.aspx?Test=$1"/>

Или номер переменной длины:

<rewrite url="^~/([\d]+)$" to="~/Sample.aspx?Test=$1"/>
...