2017-01-30 2 views
0

FTPを使用してアクセスできるIIS 7.5上で実行されているWebサイトがあります。 (したがって、IISマネージャーを使用することはできません)URLにドットがあるときにglobal.asaxを実行する方法は?

URL構造を再構成したいので、Global.asaxコードを変更して古いURLを探し、Response.Redirectを新しいURLに変更しますロケーション。これは一部のURLでは有効ですが、すべてではありません。

いくつかの実験で、古いURLにドット(たとえば、http://example.com/hello.html)があると、global.asaxコードが実行されないことがわかりました。 URLのファイル拡張子部分を削除すると、global.asaxコードがうまく動作します。

最後に.htmlなどのURLがすでに存在しており、今は変更できません。

どうすればいいですか?

+0

Global.asaxのコードを参考にして、必要な情報を提供する必要がありますか? –

+0

コードはRequest.Urlを見て、いくつかの変換を行い、Response.Redirectで終わります。 – billpg

答えて

0

「/hello.html」に対するリクエストが静的なファイルであるとIISが考えると、ASP.ENTアプリケーションに渡すことなく直接提供しようとしています(グローバルにルーティングされる前に.asaxファイル)。

この動作を変更するには、これらの要求をASP.NETアプリケーションに送信するようにIISに指示する必要があります。これはあなたが静的なファイル(.jsファイルのファイルを扱うために準備され、.cssファイル、.htmlファイル、.PNGのすべてを扱うようになります、

<system.webServer> 
    <handlers> 
     <add name = "LetMeHandleMyOwnStaticContent" path ="/*" verb="GET" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersion4.0"/> 
    </handlers> 
</system.webServer> 

注:あなたは、あなたのweb.configファイルでこれを行うことができますファイルなど)をあなたのアプリを通して。あなたはパスと動詞を操作して、あなたがあなたのアプリを通して役立つものを絞り込むことができます。 "add"要素を繰り返すことで、複数のフィルタを追加できます(各パスに一意の名前を使用するだけです)。

関連する問題