2010-11-29 7 views
0

URL書き換えモジュール2.0がインストールされたIIS 7でASP.NET 3.5を使用しています。ドメインにURLリライトを作成する - ASP.NET IIS 7

私は最初のテストの書き換えルールを作成する場合:それは完璧に動作

<rewrite> 
     <rules> 
      <rule name="Test rule1" patternSyntax="ExactMatch"> 
       <match url="w/123/test" /> 
       <action type="Rewrite" url="article.aspx?id=123" /> 
      </rule>   
     </rules> 
    </rewrite> 

を(http://www.myapp.com/w/123/test - >http://www.myapp.com/article.aspx?id=123)。

しかし、自分が所有するドメインで使用しようとすると動作しません。私は私の構文の何かが間違っていると仮定します。ここで私がやろうとしているされているもの:

  <rule name="Test Rule2" patternSyntax="ExactMatch"> 
       <match url="http://www.my-domain.com" /> 
       <action type="Rewrite" url="article.aspx?id=123" /> 
      </rule> 

私は私が、私はちょうど404ページが見つかりません得ることはありませんarticle.aspxページにリダイレクトされることを期待http://www.my-domain.comを閲覧しようとします。

ドメイン用のルールではなく、パス用のルールを作成するにはどうすればよいですか?

事前に感謝します。

+0

試してください: 'url =" my-domain.com "' –

+0

まだ、404.コメントありがとうございます。 –

答えて

1

ルールは、web.configが存在する場所を基準にしています。ルールのドメインを指定する必要はありません。あなたの/>の入力は常にクエリー文字列なしでスラッシュを付けずにURLパスになります。つまり、「http://www.my-domain.com/」をリクエストすると、入力は「」になります。 「http://www.my-domain.com/w/123/test」をリクエストすると、入力は「w/123/test」になります。

http://www.my-domain.com/にアクセスした場合、IISの「既定のドキュメント」モジュールは、要求をhttp://www.my-domain.com/default.html "に書き換えようとしますが、それはユーザーのルールと一致しません。デフォルトのドキュメントモジュールを無効にしてください。

問題が解決しない場合は、URL書き換えは、あなたがステップバイステップのワークフロー見ることができますトレース機能があります。

http://learn.iis.net/page.aspx/467/using-failed-request-tracing-to-trace-rewrite-rules/

N.B.をサーバールールの場合、入力URLには常に先頭のスラッシュが含まれます。

関連する問題