2009-06-02 14 views
0

私はHttpRequestのあらゆる種類のメソッドを使用してURLを表示しようとしましたが、VirtualPathUtilityオブジェクトも試しましたが、隠された部分 "default.aspx"を表示できませんでしたデフォルト... URLのこのセグメントを取得するメソッドまたはプロパティは何ですか?URLの非表示のdefault.aspxセグメントを取得

理由は、URLのマップされたパスにFile.Exist()を使用して、404ページ、つまりhtmlページをすべてキャッチするアプリケーションレベルで404を作成するのにはとても近く、残念ながら、デフォルトページ。

反対のことをしようとする記事はほとんど見ていませんが、default.aspxが発生したときにこれを削除します。

編集:ここで私がしようとしていますものです:

string fullOrigionalpath = context.Request.CurrentExecutionFilePath.ToString(); 
bool newUrl = System.IO.File.Exists(context.Server.MapPath(fullOrigionalpath)); 
if (!newUrl) throw new HttpException(404,"page not found"); 

今あなたが見る、ページがはlocalhost /レクサス/ default.aspxをであれば、それはエラーなしで正常に動作しますが、私が入力した場合http://localhost/lexus/の場合、fullOriginalPathを出力しようとすると "default.aspx"の部分がないため、Existsがfalseを返すため、エラーがスローされます。物理ファイルの妥当性をチェックする良い方法がありますか?

答えて

1

私はこれがすべて可能ではないと思うので、私はIIS7.0リライト機能をforcに依存していますすべての時間に表示されるdefault.aspx ..

0

あなたがたは、HttpRequestオブジェクトにAppRelativeCurrentExecutionFilePathプロパティを探している私は、あなたが「隠された部分」によって何を意味するかわからないが、あなたは試してみました...

Request.Url.ToString() 
0
+0

このファイルは、〜/を返し、File.Existsをチェックすると、falseを返します。 IISが不足していますか? – Ayyash

+0

これを正しく理解していますか?あなたが望むのは、要求されたファイルの物理ファイルパスを取得する機能です。リクエストされたURLが "http://mydomain.com/"のようなもので、結果が "〜/ default.aspx"であると期待される場所はどこですか? –

関連する問題