サーバーでIIS.net のURL 書き換えプログラムを使用して、URL 書き換えのルールを作成しています。Asp.NET 4.0 Web サイトに Page.aspx や News.aspx などのページがあります。
Page.aspx ( http://www.foo.com/Page.aspx?PageTitle=Fooからhttp://www.foo.com/Fooへ) のルールを作成すると、うまく機能します。
News.aspx ( http://www.foo.com/News.aspx?NewsTitle=Fooからhttp://www.foo.com/Fooへ) のルールを作成すると、それもうまく機能します。
しかし、News.aspx と Page.aspx の両方のルールを作成すると失敗します。プログラムはルールの順序に見えます。News のルールが最上位の場合、News.aspx Url が書き換えられ、Page.aspx Url の書き換えが失敗します。Page のルールが一番上にある場合、Page.aspx Url が書き換えられ、News.aspx Url の書き換えが失敗します。
この問題は、正規表現の一致が原因で発生すると思います。披露させて:
News.aspx のルールが一番上にあります。それでうまくいきます。しかし、Page.aspx をクリックすると、RewriteUserFriendlyURL1 のパターンが URL をキャッチし、News.aspx (アクション URL に表示) をリダイレクトしようとします。
私の説明が明確であることを願っています。
私の質問は次のとおりです。この問題を回避するにはどうすればよいですか? たとえば、Redirect.aspx という新しいページを作成して、すべてのページをここにリダイレクトできます。Redirect.aspx に対して 1 つのルールを作成できます。
しかし、これらのルールを設定することでこの問題を解決する別の方法が必要だと思います。
ありがとうございました。