1

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

我需要简单地打开一个长的动态网址,例如: 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" / >

当我输入以下内容作为 url 时,这很好用: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=公务机&seo=庞巴迪&model=挑战者%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&猫=1&猫=1

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

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

任何帮助/建议/指针/答案将不胜感激!

提前致谢。

4

1 回答 1

0

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

于 2012-12-17T14:21:09.560 回答