我正在重写。我被一个问题难住了。
<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]+)