我使用 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&cat=$3&loc=$4&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,但这并不重要。主要目的是能够实际允许回发事件,以便页面适合目的。
任何帮助/建议/指针/答案将不胜感激!
提前致谢。