2011-11-09 27 views
1

に基づく:IIS URL書き換えは、私はURLを書き換えしようとしているルートURL

www.mydomain.com/urlfolder/filename.aspx

www.mydomain.comを指すように/urlfolder/newfile.aspx

マイウェブの設定には、次のものがあります。

<rule name="PageRedirection" enabled="true" stopProcessing="true"> 
     <match url="urlfolder/filename.aspx" /> 
     <action type="Redirect" url="urlfolder/newfile.aspx" redirectType="Permanent" /> 
    </rule> 

問題は、このことです私は ように私のURLを変更しようとしましたが、^はうまくいきませんでした

www.mydomain.com/subdirectory/urlfolder/filename.aspx

次のようなキャッチのURLです。また、〜/ doesntはルートを指定するようにも働くようです。

絶対パスを使用せずに、このURLをルートから指定するにはどうすればよいですか。

私も持っている:

testsite.mydomain.com/

を、私はそこに展開SAME web.configファイルが仕事をしたいです。 ありがとう!

答えて

2

私はこの質問がほぼ4歳であることを知っています。だから、あなたはおそらく答えを必要としてから移動しています。

<rule name="PageRedirection" enabled="true" stopProcessing="true"> 
    <match url="^urlfolder/filename.aspx" /> 
    <action type="Redirect" url="urlfolder/newfile.aspx" redirectType="Permanent" /> 
</rule> 

^はパス文字列の先頭を指定しますので、何でもあなたは右のサイトのルートとスラッシュの後に表示される唯一のものと一致します^後に置く:

^

はも動作するはずです。

www.example.com/urlfolder/filename.aspx

は一致します。

www.example.com/subdirectory/urlfolder/filename.aspx

は一致しません。私はあなたが言うように、それは/subdirectory/urlfolder/filename.aspx一致する理由を考えることができ

唯一の理由は、ケースwww.example.com/subdirectory/のように扱われている/サブディレクトリ内のweb.configファイル のコピーを/があるということですその根。

web.configがルートディレクトリ以外の場所にコピーされている場合は、web.configではなく%windir%\system32\inetsrv\config\ApplicationHost.configにルールを追加することもできます。これは、特定のサイトだけでなく、コンピュータ上のすべてのIISに適用されるすべての設定を含むファイルです。私の経験上、Visual Studioはこのファイルを開くことを拒否します。ただし、ファイルを別のエディタで編集するか、IIS GUIから書き換えルールを設定することができます。

ファイルツリーの最上位にあるこのレベルで使用できるツールには、URLリライトユーティリティとそこに設定されたルールがApplicationHost.configに書き込まれます。

希望すると便利です。