我正在使用 iis7 的 URL 重写模块来完成几件事:
- 301 重定向规则从非 www 到 www
- 301 将规则 .info 重定向到 .com(移动到我的域的 .com 版本)
- 301 将规则从旧页面(例如 /page-name.asp)重定向到 /page-name
我已经能够将前两个组合成一个规则,第三项是它自己的规则。问题是在请求如下网址的情况下会生成两个 301 重定向:
site.info/page-name.asp/
首先执行 301 以:
www.site.com/page-name.asp(例如,添加了 www 并将 .info 转到 .com)
然后从那里完成第二个 301:
www.site.com/page-name
我的问题是:我怎样才能将这些组合起来,以便只发生一个 301 重定向而不是两个?以下是它们当前位于我的 web.config 中的两条规则:
<rule name="SEO - 301 Redirect - .info to .com AND force WWW" stopProcessing="false">
<match url="(.*)" ignoreCase="true" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTP_HOST}" pattern="^site\.info$" />
</conditions>
<action type="Redirect" url="{ToLower:http://www.site.com/{R:1}}" redirectType="Permanent" />
</rule>
<rule name=".aspVersion-to-friendlyvia301" stopProcessing="false">
<match url="(.*).asp" />
<action type="Redirect" url="{R:1}" />
</rule>