我使用iis7的URL重写模块来完成几件事:
- 301重定向规则从非www到www
- 301 将规则 .info 重定向到 .com(已移至我的域的 .com 版本)
- 301 从旧页面重定向规则,例如/page-name.asp 改为 /page-name
我已经能够将前两项合并为一条规则,第三项是它自己的规则。问题是在请求如下 url 的情况下会生成两个 301 重定向:
site.info/页面名称.asp/
首先执行 301 是为了:
www.site.com/page-name.asp(例如添加 www,.info 转到 .com)
然后执行第二个 301:
www.site.com/页面名称
我的问题是:如何将这些结合起来,以便只发生一个 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>
我似乎找到了自己问题的答案。这是一个有点黑客,但完成了所有必需的 url 转换(例如尾部斜线删除、非 www 到 www、toLowerCase、删除目录的默认文档以及任何其他必要的重定向,例如页面名称更改)。
我所说的问题实际上称为“301 重定向链接”,解决方案的呈现相当优雅,如下:
http://www.seomoz.org/blog/what-every-seo-should-know-about-iis#chaining
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)