1

urlrewrite.net @ http://urlrewriter.netを使用して、IIS 6 を搭載した Windows 2003 サーバーでホストされている .net Web サイトで URL 書き換えを実行しています。

http://mydomain.com/aircraft/result.aspx?view=,734,,810,,159,,163&cat=1&loc=999999&model=falseのような長い動的 URL を単純に有効にする必要があります 。

http://mydomain.com/forsale/manufacturer/,734,,810,,159,,163,/1/999999/falseのような短いわかりやすい URL に変換します 。

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 がすべて狂ってしまいます 。 .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&猫=1&猫=1

実際のURLに戻っているようですが、重複したクエリ文字列変数を追加しています..

理想的には、より短く/より使いやすい書き換えられた URL を維持するためにこれが必要ですが、これは重要ではありません。主な目的は、ポストバック イベントを実際に許可して、ページが目的に合うようにすることです。

ヘルプ/提案/ポインタ/回答は大歓迎です!

前もって感謝します。

4

1 に答える 1

0

無限ループは、この方法でアクセスした場合にのみ問題を引き起こしていたページ上のリダイレクト コードが原因でした。それを削除すると、ループの問題は解決しましたが、実際のクエリ文字列が書き換え URL に追加されました。

于 2012-12-17T14:21:09.560 に答える