![](/img/trans.png)
[英]why does HttpContext.Request.Url and Request.ServerVariables[“HTTP_HOST”] return different values
[英]Is it possible that Request.ServerVariables[“HTTP_HOST”].ToString() can return a different host than what I see in the url bar
假設我有一個通過http://www.mypage.com/test.aspx訪問的遠程頁面。 在該頁面上,我使用代碼Request.ServerVariables [“ HTTP_HOST”]。ToString()。 當我訪問該頁面時,代碼是否可以返回與我在http://www.mypage.com/test.aspx的網址欄中看到的網址不同的網址? 任何幫助,將不勝感激。 謝謝。
您可以看到IIS綁定到您的Web實例的任何名稱。 因此,如果您的服務器名為“ server1”,並且IP地址為123.123.123.123,並且所有這三個都綁定到您的IIS實例,則可以看到任何這些值。
要查找綁定的名稱,請打開“ Internet信息服務(IIS)管理器”(開始,管理工具),展開樹,直到看到您的站點。 找到您正在使用的那個。 右鍵單擊並選擇“綁定”。 編輯列表中的每個綁定。 如果他們都說[IP address:]“所有未分配”,則您的HTTP_HOST可能是1.通過DNS配置的WWW地址,2.計算機名稱3. IP地址。
我還遇到了HttpContext.Current.Request.ServerVariables [“ HTTP_HOST”]的問題,並弄清楚了。 檢索主機名的最佳方法是“ HttpContext.Current.Request.Url.Host”。 它解決了我的問題。
謝謝,拉傑
嘗試使用:
HttpContext.Current.Request.ServerVariables["SERVER_NAME"]
我希望這會起作用。
有可能,是的。 在您自己的代碼可以檢查之前, isapi_rewrite模塊可以修改HTTP_HOST的值。
有人已經提到本地重寫器(isapi_rewrite),但是也有遠程重寫器,例如發布服務器的ISA Server。 發送原始主機頭(客戶端輸入的內容)或在發布設置中輸入的主機頭是配置內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.