如何解决使用查询字符串和问号IIS 7重写IIS
|| 我已经阅读了这些线程,但仍然无法解决,这是我所知道的问题,但是想知道是否可以为我指明正确的方向。 我设置了一个规则:www.mydomain.com/productlist.asp?CategoryID=2
改写为
www.mydomain.com/homeware/cushions
。
<rule name=\"cushions\">
<match url=\"^homeware/cushions\" />
<action type=\"Rewrite\" url=\"productlist.asp?CategoryID=2\" />
</rule>
好的,现在我的问题是结果的分页,因此当用户转到下一页时,原始域如下所示:
www.mydomain.com/productlist.asp?CategoryID=2&Page=2
这是我遇到问题的地方-我希望它成为:
www.mydomain.com/homeware/cushions?page=2
正在进行多少页
只是无法正常工作-我知道我需要使用查询字符串,但确实很费劲。寻求专业知识,谢谢您的帮助
解决方法
要捕获查询字符串,您需要为此使用条件,因为匹配URL不包含查询字符串。
因此,您可以使用以下规则进行操作:
<rule name=\"cushions\" stopProcessing=\"true\">
<match url=\"^homeware/cushions$\" />
<conditions>
<add input=\"{QUERY_STRING}\" pattern=\"page=(\\d+)\" />
</conditions>
<action type=\"Rewrite\" url=\"productlist.asp?CategoryID=2&page={C:1}\" appendQueryString=\"false\" />
,只需在操作中添加appendQueryString = \“ true \”即可自动追加查询字符串。
<rewrite>
<rules>
<rule name=\"test\">
<match url=\"^homeware/cushions\" />
<action type=\"Rewrite\" url=\"/test/test.cfm?category=5\" appendQueryString=\"true\" />
<conditions>
</conditions>
</rule>
</rules>
</rewrite>
http:// localhost:8081 / homeware / cushions?page = 2
您将在URL变量中接收值为2的页面。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。