我在 web.config 文件中使用 RewriteMap 来(301)将旧 URL 重定向到新 URL。目前规则如下:
<rule name="Localhost Rewrite Rules" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^(.*\.)?example\.com$" />
<add input="{lhRewrites:{REQUEST_URI}}" pattern="(.+)" />
</conditions>
<action type="Redirect" appendQueryString="false" url="{C:1}" redirectType="Permanent" />
</rule>
请注意,该模式有意对域进行硬编码,因为这是特定于每个域名的更大规则集的一部分。所以我一般不打算优化或重写(请原谅双关语)规则。
rewriteMap.config 文件包含以下重定向:
<rewriteMap name="lhRewrites">
<add key="/old" value="/new" />
</rewriteMap>
目前,当我访问该规则时,它可以正常工作http://example.com/old
- 它重定向到http://example.com/new
.
但是,当“旧”URL 包含尾部斜杠时,它不起作用,即http://example.com/old/
. 无论旧 URL 上是否存在斜杠,我都需要它工作。
我宁愿不必复制所有映射键。
非常感谢。