我的web.config文件中有以下规则:
<rule name="Reviews SEO Redirect" stopProcessing="true">
<match url="www.mysite.us/reviews/Manufacturer-([^~]*)-([^~]*)-([^~]*)" />
<action type="Redirect" redirectType="Permanent" url="www.mysite.us/reviews/{R:1}" />
</rule>
现在,我的目标是重定向这样的网址结构:
http://www.mysite.us/reviews/Manufacturer-X-Category-Y
到
http://www.mysite.us/reviews/X
如果我转到http://www.mysite.us/reviews/X,我会收到预期的内容。如果我转到原始URL,它会提取我在Drupal的View模块中创建的默认/评论VIEW。而且它根本不会改变浏览器窗口中的URL。所以它感觉它忽略了规则或者我的比赛错了。
我使用URL重写编辑器来测试规则,它似乎像我想要的那样解析,但是当我使用该URL结构访问我网站上的页面时,发生了什么。所以我想知道我错过了什么。
有什么建议吗?
答案 0 :(得分:1)
匹配网址不包含主机名。它应该如下:
<rule name="Reviews SEO Redirect" stopProcessing="true">
<match url="reviews/Manufacturer-([^~]*)-([^~]*)-([^~]*)" />
<action type="Redirect" redirectType="Permanent" url="www.mysite.us/reviews/{R:1}" />
</rule>
This documentation显示了URL如何分解。测试功能的问题在于它不会减少IIS传入的值,并最终输入您期望的内容。因此它匹配。