2

IIS でディレクトリの既定のドキュメントとして設定されている index.asp というファイルで、.asp VBScript を使用して、ページが既定のドキュメントとして呼び出されたのか、名前で直接呼び出されたのかを判断しようとしています。これら2つのケースをサーバー側で区別しようとしています:

http://someurl/

http://someurl/index.asp

ASP.NET でこれを行う方法は知っていますが、同じ「サーバー変数」が利用できないようです。URL とスクリプト名 (PATH_INFO、SCRIPT_NAME、URL) を処理するサーバー変数は、スクリプトが呼び出された方法に関係なく、すべて「index.asp」を返します。

Google 検索では、これが不十分です。何か案は?

4

5 に答える 5

1

サーバーは知りませんが、クライアントは知っています。JavaScriptlocation.hrefでは、 を調べてから、必要なロギング メカニズムへの Ajax 呼び出しを使用して、その値をサーバーに返すことができます。

于 2008-12-18T01:24:24.603 に答える
0

ダイオードは正しいです。クライアント側のJavaScriptがURLを検出する唯一の方法のようです。他のすべてのオプションでは、コンテンツページとデフォルトのドキュメントページを別々のファイルに区別する必要があります。私が実際にやろうとしているのは、両方のリクエストをデフォルトのドキュメントURLに凝縮することです(index.aspが直接リクエストされた場合はリダイレクトされます)。

これが単一のドロップインコードであるという要件を満たすために、私は次のJavaScriptブロックを使用することになりました。

<script language="javascript" type="text/javascript">
var loc = window.location.href;
var re = /\/index.asp/i;
if (loc.search(re) != -1) {
    window.location.href = loc.replace (re,"/"); 
}
</script>
于 2008-12-18T04:41:54.813 に答える
0

Request.ServerVariables("REQUEST_URI").item は、クエリ文字列部分を含む、クライアントによって要求された生の URL を提供します。

Request.ServerVariables コレクションでは列挙できず、一貫して文書化されていませんが、IIS 10 で動作します。ここで見つけました: https://docs.microsoft.com/en-us/iis/web-dev-reference /サーバー変数

于 2021-04-14T02:30:25.630 に答える
0

これはどうですか...
新しいファイル IndexDefault.asp を作成し、既定のドキュメントとして設定します
。 IndexDefault.asp で、Index.asp へのリダイレクトを作成し
ます。

于 2008-12-18T01:01:41.230 に答える