Назад | Перейти на главную страницу

Правило перезаписи для URL-адреса, содержащего пробел в конце в web.config?

Я работаю над процессом переписывания. Я застрял на этом.

<rule name="Uk3" stopProcessing="true">
      <match url="^activities/exploring/tours/tabid/3422/id/5205/k/([a-z0-9A-Z-\s]+)/p/1/nickis-beach-rides.aspx$" ignoreCase="true" />
  <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
        <add input="{HTTP_HOST}" pattern="^(www.)?abc.co.uk$" />            
      </conditions>
      <action type="Redirect" url="/activities/exploring/tours.aspx" />
    </rule>

что делает вышеуказанное правило:

Он соответствует «activity / explore / tours / tabid / 3422 / id / 5205 / k /» как есть и может содержать что угодно после этого, вплоть до «/p/1/nickis-beach-rides.aspx». Он отлично работает для всех URL-адресов, кроме следующих:

http://www.abc.co.uk/activities/exploring/tours/tabid/3422/id/5205/k/enjoy%20your%20morning%20cofee%20and%20evening%20cocktails%20on%20/p/1/nickis-beach-rides.aspx

который содержит пробел "наслаждайтесь% 20your% 20morning% 20cofee% 20and% 20evening% 20cocktails% 20on% 20" в качестве последнего символа, который приводит к прекращению работы этого правила,

Кто-нибудь знает, как я могу добавить указанный выше URL-адрес, чтобы работать соответствующим образом?

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

это % знак не обрабатывается вашим фактическим регулярным выражением.

Вы можете попробовать: ([%a-z0-9A-Z-\s]+)