8

私は現在、同じ ASP.NET アプリケーションを指す複数のサブ ドメインを持つサイトをテストしており、ルーティングは各要求の処理を処理します。

テストのために、「hosts ファイル」にいくつかのサブドメインを追加しました。たとえば、「127.0.0.1 admin.TestDomain.com」は正常に動作しています。

ただし、問題は、c# で関数を呼び出してホスト名/ドメイン/URL (HttpContext.Current.Request.Url ...) を取得すると、ホスト URL が常に「TestDomain」ではなく「localhost」で返されることです。 "。

この名前がこのように解決されている理由と、「TestDomain.com」を入手できる場所はありますか?

4

1 に答える 1

11

「ホスト」ファイルを使用してローカルオペレーティングシステムによってドメインをIPアドレス(localhost)にマッピングした後、元のホストが失われたと思います。代わりにRawUrlを試して、ブラウザーに入力された正確な URL を取得できます。

HttpContext.Current.Request.RawUrl  

HTTP_HOSTまた、ユーザーリクエストヘッダーから変数をフェッチしようとすることもできますHost:。これには、ブラウザーがリクエストしようとする元のホスト (サーバーのアドレスまたはデフォルトホストではない) が含まれている必要があります。

string requestedDomain = HttpContext.Current.Request.ServerVariables["HTTP_HOST"];

RawUrl の記事からパラメーターを取得すると役立つかもしれません。

于 2012-04-26T13:59:19.177 に答える