【发布时间】:2017-04-16 12:41:33
【问题描述】:
我对重写地图还很陌生,但我们确实让我们的工作在非常基本的层面上工作。网站重新设计后,我们建立了一个广泛的重写地图(数千条规则),将旧页面指向新页面。我们遇到的麻烦是我们必须为同一页面添加多个值才能使重写工作。
例子:
http://www.abc123.com/About --> http://www.abc123.com/about-us
http://www.abc123.com/About.aspx --> http://www.abc123.com/about-us
http://www.abc123.com/about/ --> http://www.abc123.com/about-us
http://www.abc123.com/about.aspx --> http://www.abc123.com/about-us
应该有一种方法可以在正则表达式中的基本 URL 之后使用通配符 - 我期待这样的内容:^./[about]$ 如果包含所有 url,那就太好了“关于”,但他们没有。
还请注意,我们不是按目录重定向,而是按文件名重定向。就是我们的 CMS 设置为不使用 .aspx 扩展名,所以任何扩展名都可以使用。
我想要的是只需要为每个 URL 设置一个规则,如下所示: “http://www.abc123.com/about”,它会将上述所有变体指向新 URL,无论它是否没有扩展名或扩展名是 .html、.asp、.aspx 或 .whatever
这超出了重写规则的能力,还是我缺少一些基本的正则表达式?
这是我们使用的规则:
<rule name="Redirect Rule for Legacy Redirects" enabled="true" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{Redirects:{REQUEST_URI}}" pattern="(.+)" />
</conditions>
<action type="Redirect" url="{C:1}" appendQueryString="false" />
</rule>
任何见解将不胜感激。
【问题讨论】:
-
我承认我不知道什么是 rewitemap 但你可以试试
match url=".+about$" -
正则表达式应该匹配哪些输入?正则表达式不应该匹配哪些输入?
标签: regex url-rewriting iis-7 rewritemap