2012-05-16 21 views
10

私はIIS 7.5とURLリライトを使用します。IIS 7.5 URLリライト - URLからフォルダを書き換えます。

私はこの方法でファイルの階層構造を持つウェブサイトを持っている:

webroot 
webroot/LegacySite 

Webrootウェブルートと従来の両方がIISでのApp-フォルダを分離しています。

に書き換えられますされている場合:私は私のURLを書き換える必要があり


正しく動作しない、あなたが私に何が欠けている私を指摘できますか?

<?xml version="1.0" encoding="UTF-8"?> 
    <configuration> 
     <system.webServer> 
      <rewrite> 
       <rules> 
        <rule name="MyRole" stopProcessing="true"> 
         <match url=".*" /> 
         <conditions> 
          <add input="{HTTP_HOST}" pattern="^mysite.com" /> 
          <add input="{PATH_INFO}" pattern="^\LegacySite\" negate="true" /> 
         </conditions> 
         <action type="Rewrite" url="\LegacySite\{R:0}" /> 
        </rule> 
       </rules> 
      </rewrite> 
     </system.webServer> 
    </configuration> 

答えて

16

次のように動作するはずです:

<rule name="MyRole" stopProcessing="true"> 
    <match url="LegacySite/(.*)" /> 
    <conditions> 
     <add input="{HTTP_HOST}" pattern="^mysite.com$" /> 
    </conditions> 
    <action type="Rewrite" url="/{R:1}" appendQueryString="true" /> 
</rule> 

あなたはホスト名をチェックするための条件をドロップすることがあります。それは本当に重要ですか?そのウェブサイトにバインドされている他のドメイン名は、リダイレクトしないようにしていますか?それは不要です。あなたはおそらく唯一の必要があります。

<rule name="MyRole" stopProcessing="true"> 
    <match url="LegacySite/(.*)" /> 
    <action type="Rewrite" url="/{R:1}" appendQueryString="true" /> 
</rule> 

私が書き換えられたURLに任意の(オプション)クエリ文字列パラメータを渡すためにappendQueryString="true"を追加しました。

+0

お返事ありがとうございます – GibboK

関連する問題