2011-10-26 6 views
1

私は古いソースがたくさんある古いサイトを持っています。そのうちの1つは、 "Default.aspx"が含まれている場合、Request.Url文字列をチェックするifステートメントがあることです。これは一度はうまくいきましたが、昨日、私はこれがもう動作しないことに気づきました。なぜなら、返されるURLは常に小文字です(私のファイル名はDefault.aspxです)。Request.Urlが常に小文字のURLを提供するように変更されましたか?

これは、IISまたはasp.netに行われているいくつかの奇妙な小さな修正ですか?私はそれも私がやったことがあったかもしれないが、私は尋ねるかもしれないと思っていたかもしれないと思うかもしれません。

+0

変更が不明です。しかし、IISは大文字小文字を気にしないので、default.aspx、Default.aspx、DEfaULt.aspxを受け入れます。 Request.Urlは、実行された実際のファイル名ではなく、要求されたものを返します。ページや何かへのリンクを変更しましたか、root /がdefault.aspxとして要求していて、Default.aspxとして使用していたことを意味していますか? –

答えて

1

あなたの文では、このようなことができれば:

if(Request.Url.ToLower().Contains("default.aspx")) 
{ 
    //to do... 
} 
+1

何らかのグローバル設定があるかどうかにかかわらず(これは存在しません)、これは、ある文字列が別の文字列と等しい場合、テストに近づける最善の方法です。 – NotMe

0

URLは大文字と小文字が区別されますが、ASP.NETではありません。比較のために文字列を.ToLower()にする必要があります。

さらに、default documentがIISに設定されているか確認してください。default.aspxに変更されている可能性があります。

Setting Up Default Documents (IIS 6.0)

Configuring Default Documents in IIS 7

0

あなたはその下外装相当する上部外装文字を有し有する任意のURL永久リダイレクトするHttpModuleを(301)を作ることができます。そのようにして平等チェックを変更する必要はありません。

関連する問題