0

IIS7.5で.NetMVCサイトの書き換えルールを作成する必要があります。Url Rewrite Moduleをインストールし、いくつかの非常に単純なルールを構成しましたが、成功しませんでした。

だから私の最初の質問は、IISが着信URLを処理する順序はどれですか?Incomming URL-> URL Rewrite-> Rewrite the Url-> .Net MVC Routing Managerは更新されたURLを取得しますか?

そうでない場合は、どの順序で処理しますか?また、URLリライトを取得して最初にURLを処理するにはどうすればよいですか?

「書き換えられたURLをログに記録する」というチェックボックスがあります。このログはIISログに記録されますか、それとも他の目的で使用されますか?

これが私が作成したリライトインバウンドルールです:

Pattern: (.*)/fin/(.*)
Rewrite URL: {R:1}/fi/{R:2}

どんな助けでも大歓迎です。

更新:2012年4月5日 まだシステムで動作させることができません。ローカルホストを介してそれをヒットしてプロキシと負荷分散を排除しようとしましたが、それでも機能しません。別のマシンにインストールしましたが、チャンピオンのように動作します。任意の提案をいただければ幸いです。

**更新:2012年4月6日**まだ問題を追跡していませんが、MVCアプリのweb.configが問題を引き起こしているのではないかと思います。web.configのこれらのステートメントがこれを引き起こしている可能性がありますか?:

<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true">
  <remove name="WebDAVModule" />
</modules>

4

2 に答える 2

0

レイ、

あなたは書き換えプロセスのステップについて正しいです。IISは、リクエストを適切なasp.netアプリに渡す前に、最初にURLを書き換えます。

ただし、IISの書き換えはルーティングで使用することに注意してください。これは、IISが互いに競合する可能性があるためです。特に、IISが予期しない方法でURLを書き換える場合。私にとって、このようなケースは、ジェフ・アトウッドがブログを書いたときに正しかったことを証明しています。

問題に直面したときに、「わかっている、正規表現を使用する」と考える人もいます。今、彼らは2つの問題を抱えています。

一般に、IISリライトを介したルーティングを使用する側で誤りを犯し、IISリライトのみを使用して、正規ドメインの確立(wwwとwwwなし)、小文字のURLの強制、URLの末尾のスラッシュの強制などの一般的なルールを適用します。 。

あなたの問題はそれよりも具体的なようです。ショットガンで問題を解決する前に、ルーティングに関するすべてのオプションを使い果たしました(URLの書き換えなど)。

于 2012-04-05T12:48:16.667 に答える
0

2012年4月11日更新

URL書き換えモジュールは実際には正しくインストールされています。いくつかの非常に基本的なテストを行い、それらは機能しました。ルールの正規表現が正しくない(余分なスラッシュが含まれている)ことを発見し、IISResetを実行する必要がありました。他の誰かがこの投稿を見つけた場合は、リダイレクトルールが正しいことを確認し、非常に簡単な基本テストを実行して、その機能を確認します。

于 2012-04-11T18:36:46.010 に答える