2011-12-14 24 views
0

IIS7で実行されているASP.NETアプリケーションのweb.configに301の永久リダイレクトを設定する必要があります。IIS7とweb.config内のlocationタグを使用した永久リダイレクト

<configuration> 
    <location path="services.htm"> 
    <system.webServer> 
     <httpRedirect enabled="true" destination="default.aspx" httpResponseStatus="Permanent" /> 
    </system.webServer> 
    </location> 
    <location path="products.htm"> 
    <system.webServer> 
     <httpRedirect enabled="true" destination="default.aspx" httpResponseStatus="Permanent" /> 
    </system.webServer> 
    </location> 
</configuration> 

Iからリダイレクトすべてのページは、ホームページにリダイレクトされます - 私はDefault.aspxのためにリダイレクトする必要が10ページ以上を持っているとして、これを行うための迅速かつ/または簡単な方法はありますか?私は、10ページのそれぞれについてロケーションセクションを指定することができますが、より簡潔なアプローチを望んでいました。

答えて

0

.htmをASP.NETライブラリ(デフォルトでは.aspxと同じです)で処理するように設定し、必要に応じてglobal.ascx内のApplication_BeginRequestの要求を調べてリダイレクトすることができます。

Web.configでは1〜2回のリダイレクトよりも少し複雑ですが、一定量の後では簡単になります。

+0

ファイルシステムに.htm/.aspxファイルが存在しない場合、global.ascx内のApplication_BeginRequestはトリガされません。 – amateur

+0

IIS5/6などで「チェックファイルが存在する」を選択しなかった場合、または「要求がファイルにマップされている場合にのみハンドラを呼び出す」などのようになります(正確な文言を思い出すことはできませんが、URIのbeginrequest何十回もファイルにマップされない)。 –

+0

これはweb.configで設定できますか? – amateur

0

web.configにページを1つずつ入力する代わりに、HttpModuleを作成することもできます。統合モードのIIS7 +では、デフォルトでHttpModulesが静的​​ファイルを含むすべてのコンテンツに対して実行されます。

コードのリダイレクトを行うには、早期にHttpResponse.RedirectPermanent(string url, bool endResponse)に電話してください。最高のパフォーマンスを得るには、endResponse = trueを設定します。

0

IIS URL書き換えモジュールを使用することをお勧めします。 http://www.iis.net/download/urlrewrite

このモジュールは、すべてのURLのリダイレクトやニーズを書き換えるためのスイスアーミーナイフのようなものです:

それはあなたがここにダウンロードできる公式のモジュールです。

関連する問題