URL Rewriter.NET и несколько строк запросов

2

Я подчеркиваю, пытаясь создать правило url rewriter.net для моего веб-сайта.

У меня есть ссылка

 http://localhost/Pages/CategoryList.aspx?ID=2&Page=1

И я хочу заменить его на

 http://localhost/Category/2.aspx?Page=1

Я попробовал следующее:

<rewrite url="~/Category/(.+).aspx?Page=(.+)" to="~/Pages/CategoryList.aspx?ID=$1&amp;Page=$2" /> 

Но это не сработало.

Может кто-нибудь мне помочь?

  • 0
    Почему вы хотите сохранить .aspx? Вы могли бы сделать красивую (и более семантическую) ссылку довольно легко с переписыванием ...
Теги:
url-rewriting

5 ответов

0
Лучший ответ

Это будет работать

<rewrite url="~/Category/(.+).aspx(\?(.*))?" to="~/Pages/CategoryList.aspx?ID=$1&amp;$3" />
2

Попробуйте следующее:

<rewrite url="~/Category/([0-9]+)\.aspx\?Page=([0-9]+)" to="~/Pages/CategoryList.aspx?ID=$1&amp;Page=$2" />

Или лучше (короче):

<rewrite url="~/Category/(d+)\.aspx\?Page=(d+)" to="~/Pages/CategoryList.aspx?ID=$1&amp;Page=$2" />

Я думаю, что "." вы используете слишком жадный и слишком много соответствует.

0

Вы добавили:

<httpModules>
      <add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter"/>
</httpModules>

в ваш web.config файл?

  • 0
    Да. У меня есть другие правила, работающие в том же проекте.
0

Попробуйте следующее:

<rewrite url="~/Category/(.+)\.aspx\?Page=(.+)" 
         to ="~/Pages/CategoryList.aspx?ID=$1&amp;Page=$2" />
0

вы забыли избежать некоторых специальных символов ( "." и "?" ) и не уверены в "~":

<rewrite url=".*/Category/(.+)\.aspx\?Page=(.+)" to="/Pages/CategoryList.aspx?ID=$1&amp;Page=$2" />

Ещё вопросы

Сообщество Overcoder
Наверх
Меню