Я подчеркиваю, пытаясь создать правило 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&Page=$2" />
Но это не сработало.
Может кто-нибудь мне помочь?
Это будет работать
<rewrite url="~/Category/(.+).aspx(\?(.*))?" to="~/Pages/CategoryList.aspx?ID=$1&$3" />
Попробуйте следующее:
<rewrite url="~/Category/([0-9]+)\.aspx\?Page=([0-9]+)" to="~/Pages/CategoryList.aspx?ID=$1&Page=$2" />
Или лучше (короче):
<rewrite url="~/Category/(d+)\.aspx\?Page=(d+)" to="~/Pages/CategoryList.aspx?ID=$1&Page=$2" />
Я думаю, что "." вы используете слишком жадный и слишком много соответствует.
Вы добавили:
<httpModules>
<add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter"/>
</httpModules>
в ваш web.config
файл?
Попробуйте следующее:
<rewrite url="~/Category/(.+)\.aspx\?Page=(.+)"
to ="~/Pages/CategoryList.aspx?ID=$1&Page=$2" />
вы забыли избежать некоторых специальных символов ( "." и "?" ) и не уверены в "~":
<rewrite url=".*/Category/(.+)\.aspx\?Page=(.+)" to="/Pages/CategoryList.aspx?ID=$1&Page=$2" />