urlrewrite.Net无限循环

时间:2012-12-17 11:57:17

标签: asp.net .net url-rewriting iis-6 url-rewrite-module

我正在使用urlrewrite.net @ http://urlrewriter.net在使用IIS 6的Windows 2003服务器上托管的.net网站上执行网址重写。

我需要简单地转动一个长动态网址,例如: http://mydomain.com/aircraft/result.aspx?view=,734,,810,,159,,163&cat=1&loc=999999&model=false

进入更友好的网址,例如: http://mydomain.com/forsale/manufacturer/,734,,810,,159,,163,/1/999999/false

我的web.config中有以下规则:

<rewrite url="^/forsale/(.+)/(.+)/(.+)/(.+)/(.+)" to="/aircraft/result.aspx?view=$2&amp;cat=$3&amp;loc=$4&amp;model=$5" / >

当我输入以下内容作为网址时,此方法正常: http://mydomain.com/forsale/manufacturer/,734,,810,,159,,163,/1/999999/false

但是,只要我触发任何类型的回发,它就会进入无限循环,浏览器地址栏中的url会疯狂,例如: http://mydomain.com/aircraft/result.aspx?view=1&cat=999999&loc=detailed.aspx?AId=32270&Cat=Business-Jets&seo=Bombardier&model=Challenger%20300&cat=1&cat=1&cat=1&cat=1&cat=1&cat=1&cat=1&cat=1&cat=1&cat=1&cat=1&cat=1&cat=1&cat=1&cat=1&cat=1&cat=1&cat=1&cat=1&cat=1

它似乎正在恢复到真正的URL,但添加了重复的查询字符串变量..

理想情况下,我希望这可以保持更短/更友好的重写网址,但这并不重要。主要目的是能够实际允许回发事件,以便页面适合用途。

非常感谢任何帮助/建议/指示/答案!

提前致谢。

1 个答案:

答案 0 :(得分:0)

无限循环是由于页面上的一些重定向代码导致以这种方式访问​​时只会导致问题。删除它已解决了循环问题,但导致真正的查询字符串被附加在重写URL上。