2012-03-01 10 views
3

私がしたいのは、メインアプリケーションにサブドメインを書き直し、指定したサブドメインをクエリ文字列に追加することです。たとえば、「http://a.main.com」は「http://www.main.com/default.aspx?SD=a」に書き換える必要があります。ここでIIS7 URLリライト - リダイレクトはなぜ機能し、リライトはしませんか?

は私の書き換えルールです:

<rule name="SubDomain" stopProcessing="true"> 
    <match url="^$" /> 
    <conditions trackAllCaptures="false"> 
    <add input="{HTTP_HOST}" pattern="^([A-Za-z0-9]+)\.main\.com$" /> 
    </conditions> 
    <action type="Rewrite" url="http://www.main.com/default.aspx?SD={C:1}" logRewrittenUrl="false" /> 
</rule> 

私は「http://a.main.com」に私のブラウザを移動すると、私がするルールを変更したときに、私は、しかし、404を取得します代わりにルールをリダイレクトすると、正しくリダイレ​​クトされます。リダイレクトモードに設定されているときには動作しますが、リライトモードに設定されているときには動作しません。どうしたの?

FYI myHOSTSファイルは、www.main.comとa.main.comの両方が127.0.0.1を指すように設定されています。 IIS7でのWebサイトの唯一のバインディングは、ホスト名プロパティが127.0.0.1に設定されています。

答えて

3

ノードのurlプロパティの「http://www.main.com/」部分を削除する必要がありました。ここに見えるものは次のとおりです。

<action type="Rewrite" url="default.aspx?SD={C:1}" logRewrittenUrl="false" /> 

これは機能します。

関連する問題