Как мне остановить UrlRewriter зачистки моих + символов
Я использую UrlRewriter от Intelligencia в своем приложении, и у меня возникла проблема, когда установленные мной правила удаляют символ + из моего URL.
Например, я хочу иметь URL /category/catname/+tag+tag
но мне кажется, что /category/catname/ tag tag
У кого-нибудь есть идеи и это до моего регулярного выражения? Я попробовал это в регуляторе, и это соответствует отлично.
<rewriter>
<rewrite url="^/content/(.+)$" to="~/page.aspx?name=$1" />
<rewrite url="^/category/(.+)$" to="~/catalog.aspx?category=$1" />
<rewrite url="^/product/(.+)$" to="~/catalog.aspx?product=$1" />
<rewrite url="~/login/" to="~/login.aspx"/>
</rewriter>
1 ответ
Причина, по которой это происходит, заключается в том, что веб-сервер анализирует "+" как пробел, прежде чем ваш рерайтер получит его. Литеральный + - это то, что вы не можете использовать в реальном URL. Если вы хотите использовать +, тогда вам нужно ссылаться на него как на что-то вроде%2B: "/category/catname/%2Btag1%2Btag2".
Изменить: Вот пример кодирования URL Это иллюстрирует несколько символов, которые вы не можете использовать, и как их кодировать. Если вы ищете больше визуально привлекательных символов для URL, вы можете попробовать "-" и "_", которые оба действительны, я бы предложил "-". примером URL-адреса будет тогда "/category/catname/-tag1-tag2".