ASP.NET UrlRewriter - Как написать RegEx для Root?
Я пытался использовать 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 ответ
Если ваш идентификационный код всегда будет состоять из 5 цифр, вы могли бы привязать регулярное выражение к этому:
<rewrite url="^~/([\d]{5})$" to="~/Sample.aspx?Test=$1"/>
Или номер переменной длины:
<rewrite url="^~/([\d]+)$" to="~/Sample.aspx?Test=$1"/>