我讨厌正则表达式并且讨厌我,这就是问题所在:
我正在处理臭名昭着的Angular路由和遗留浏览器(IE9 +),我已经解决了所有问题,但是在IE中,应用程序的根URL需要正斜杠(并且只有根)。与此同时,我需要从其他非root请求中删除所有正斜杠,如此借用代码段所示:
<rule name="Remove trailing slash" stopProcessing="true">
<match url="(.*)/$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Redirect" redirectType="Permanent" url="{R:1}" />
</rule>
这非常有效,我只是不知道如何获得这样的请求:http://localhost/jumpstart
使用尾部斜杠重写为:http://localhost/jumpstart/
,同时为非应用程序根请求保留其他规则。
我认为*\/jumpstart(?!\/)
的匹配就足够了,但它无法正常工作。
任何帮助都将不胜感激。
谢谢!
答案 0 :(得分:1)
您应该可以使用以下内容:
<rule name="Add trailing slash to jumpstart" stopProcessing="true">
<match url="(.*[^/])$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_FILENAME}" pattern="(.*?)jumpstart$" negate="true" />
</conditions>
<action type="Redirect" redirectType="Permanent" url="{R:1}/" />
</rule>