Проблема перезаписи URL, выражение Regex - PullRequest
2 голосов
/ 08 сентября 2011

В моем приложении я использовал URL Rewrite, используя Intelligencia. Мой шаблон URL -

<rewrite url="~/([A-Za-z0-9-_ ]+)$" to="~/xxxxxx.aspx?id=$1"/>

Теперь я хочу, если URL не содержит iphonestatelist, iphonepropertytype , тогда только он должен перенаправлять.

Я использовал этот код ниже, но он не работает.

<rewrite url="~/(^((?!\b(iphonestatelist|iphonepropertytype)\b).)*[A-Za-z0-9-_ ]+)$" to="~/xxxxxx.aspx?id=$1"/>

Например: Приведенный ниже URL не хочет переписывать

www.xxxx.com / а / Сеф / iphonestatelist

Правильный URL для перезаписи

www.xxxx.com / FX1234

Ответы [ 2 ]

3 голосов
/ 08 сентября 2011

Попробуйте

<rewrite
   url="^(?!.*?\b(?:iphonestatelist|iphonepropertytype)\b)~/([A-Za-z0-9-_ ]+)$" 
   to="~/xxxxxx.aspx?id=$1"
/>

Обычно: чтобы проверить, содержит ли строка (или не содержит) определенную подстроку, используйте упреждающий просмотр (или отрицательный упреждающий просмотр, соответственно)как это:

^(?=.*?pattern-reqired)pattern-you-look-for
^(?!.*?pattern-disallowed)pattern-you-look-for

Эти шаблоны также могут быть связаны

^(?!.*?not-this)(?!.*?not-that)pattern-you-look-for
0 голосов
/ 10 июня 2013

Попробуйте <rewrite url="^(?!.*?\b(?:iphonestatelist|iphonepropertytype)\b)~/([A-Za-z0-9-_ ]+)$" to="~/xxxxxx.aspx?id=$1" />

Обычно: чтобы проверить, содержит ли строка (или не содержит) определенную подстроку, используйте упреждающий просмотр (или отрицательный упреждающий просмотр, соответственно) следующим образом:

`^(?=.*?pattern-reqired)pattern-you-look-for

^ (?!. *? Pattern-disallowed) pattern-you-look-for Эти шаблоны также могут быть объединены в цепочку

^ (?!. ? Not-это) (?!. ? не то) модель вы-смотреть-for`

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...