web.config 中末尾包含空格的 URL 的重写规则?

web.config 中末尾包含空格的 URL 的重写规则?

我正在重写。我被一个问题难住了。

<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>

上述规则的作用是:

它与“activities/exploring/tours/tabid/3422/id/5205/k/”匹配,并且它可能包含此后的任何内容,直到“/p/1/nickis-beach-rides.aspx”。除了以下 URL 之外,它对所有 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

其中包含“enjoy%20your%20morning%20cofee%20and%20evening%20cocktails%20on%20”空格作为最后一个字符,导致此规则停止工作,

有人知道我该如何添加上述 URL 才能正常工作吗?

答案1

我可能是错的,但我怀疑罪魁祸首更多的是符号%而不是尾随空格。

%您的实际正则表达式无法处理此符号。

您可以尝试:([%a-z0-9A-Z-\s]+)

相关内容