如何知道正在调用哪个主机

本文关键字:主机 调用 何知道 | 更新日期: 2023-09-27 18:03:58

我在c#中有一个web应用程序,我想根据在网站上被调用的主机重定向应用程序…例如,如果我调用www.domain.com,我希望应用程序被重定向到一个名为Site1的文件夹,如果我调用www2.domain.com,我希望应用程序被重定向到Site2。这些是示例名称…这是同一个地点不同的操作。所有DNS的东西都被处理好了,所以不用担心。我必须说www和ww2都指向同一个服务器IP地址。

谢谢大家…

(对不起,如果标题不太清楚,我不知道如何正确地提出问题)

如何知道正在调用哪个主机

你的代码应该检查HttpContext.Current.Request.Url.Host

的例子:

string host = HttpContext.Current.Request.Url.Host
switch (host.ToLower())
{
    case "www.domain.com":
        HttpContext.Current.Response.Redirect("~/Site1");
        break;
    case "www2.domain.com":
        HttpContext.Current.Response.Redirect("~/Site2");
        break;
    default:
        HttpContext.Current.Response.StatusCode = 500;
}

如果您正在使用IIS,您可以为网站配置主机头

有几种方式托管你的web应用程序(例如IIS,自托管)。既然您没有说,我就假定您使用的是IIS。您可以简单地添加两个不同的网站,每个网站都使用对应主机名的HTTP(端口80)绑定(例如,一个为www.domain.com,另一个为www2.domain.com)。这可以在添加站点时配置,或者稍后使用绑定对话框。

如果你想让它与HTTPS一起工作,你使用单个IP地址的事实意味着你需要能够支持服务器名称指示。这只适用于IIS版本8以后(Windows Server 2012或Windows 8)。