我正在使用Visual Studio 2008开发ASP.NET 3.5应用程序。
我的默认页面在Page_Load方法中有一些重定向代码:
protected void Page_Load(object sender, EventArgs e)
{
string sname = Request.ServerVariables["SERVER_NAME"].ToLower();
if (sname.ToLower().Contains("intranet"))
{
Response.Redirect("/intranet/Default.aspx");
}
else if ((sname.ToLower().Contains("extranet")))
{
Response.Redirect("/extranet/Default.aspx");
}
else {
Response.Redirect("/web/Default.aspx");
}
}
我修改了我的hosts文件,以便将Intranet和Extranet重定向到我的本地计算机。
127.0.0.1 intranet
127.0.0.1 extranet
然后我在浏览器中输入网址http://extranet。
然而,问题是从Request.ServerVariables [“SERVER_NAME”]返回的服务器变量值始终是“localhost”而不是“extranet”
有关如何获得正确价值的任何帮助?
非常感谢
答案 0 :(得分:13)
Request.ServerVariables [“HTTP_HOST”]获取我正在寻找的值:)
答案 1 :(得分:5)
你是对的 您想要检索请求所来的网站的完整地址。不要使用“SERVER_NAME”,请使用“HTTP_HOST”。 在这里阅读, http://www.requestservervariables.com/get-address-for-website
答案 2 :(得分:0)
Server_Name
返回服务器的主机名,DNS别名或IP地址,就像它在自引用URL中显示一样
为什么不使用Request.URL
?
答案 3 :(得分:0)
您的主机文件仅将请求重定向到特定的IP地址 - 您无法通过编辑来更改请求的计算机名称。