如何阻止其他域名指向我的域名?

本文关键字:域名 我的 其他 何阻止 | 更新日期: 2023-09-27 18:02:31

我最近发现有其他域名指向我的网站(不属于我),我想知道人们如何阻止/防止这种情况发生。我用IIS和ASP在peer1上托管这个。净c#。

我可以使用HttpModule或其他一些代码拒绝域名,不是我的?

有更好的方法吗?

如何阻止其他域名指向我的域名?

您应该激活基于名称的虚拟主机,只显示您的真实网站所需的域名。对于所有其他名称,您可以显示合适的错误消息。

详细信息:您的web服务器通过其IP地址联系。你做什么都阻止不了。任何人都可以说,"连接到那个IP地址"。例如,任何人都可以注册新的域名来指向你的服务器的IP地址。但是,在请求内部,有一个字段Host,其名称类似于www.example.com

在收到请求后,您的服务器可能会选择检查Host字段并根据该值提供不同的内容。在最简单的情况下,服务器完全忽略该字段,并始终打印相同的内容。但在更复杂的设置中,即所谓的"基于名称的(虚拟)主机",服务器根据主机名选择内容。

这就是共享网络主机的工作原理:有一个服务器,但根据请求的主机名,它为每个名称吐出不同的网站。

因此,如果你想把你的服务器内容和你的主机名联系起来,你必须告诉你的服务器只为你想要的名字生成你的网站,并为所有其他情况生成一个不同的(错误的)网站。

在Apache中,这是微不足道的配置,只需检查他们的文档;对于IIS,我不知道,但我想同样简单。

如果您的托管环境是IIS,并且您拥有管理员权限。设置你的默认网站显示一个错误页面,然后创建一个新的网站,主机头与你的域名相匹配,指向你的网站。

这是我的解决方案。它真的很快就解决了我的问题

在你的。htacces

中插入这段代码
RewriteCond %{HTTP_HOST} !^www.higueyrd.com$
RewriteRule ^/?(.*) http://www.higueyrd.com/$1 [QSA,R=301,L]

输入你的域名。

在IIS中有一个名为bindings的设置,允许您选择您的网站将响应哪些主机名。此功能允许IIS实例在单个IP地址上托管多个网站。

如果你希望你的网站只适用于http://example.com/和http://www.example.com/,你应该将绑定设置为只适用于"example.com"answers"www.example.com"。

这里的例外是如果您正在使用SSL。如果是,IIS无法确定主机名,您很可能必须为您的站点使用专用IP地址。在这种情况下,user608576的解决方案可以工作。虽然,我会把代码放在你的Global.asax文件:

<%@ Application Language="C#" %>
<script runat="server">
void Application_BeginRequest(Object sender, EventArgs args)
{
    HttpRequest request = HttpContext.Current.Request;
    HttpResponse response = HttpContext.Current.Response;
    if( (request.Url.Host != "example.com") && (request.Url.Host != "www.example.com") )
    {
        response.Clear();
        response.Write("Unauthorized domain name: " + request.Url.Host);
        response.End();
    }
}
</script>

作为临时修复,您可以这样做。可能是在主页加载或BeginRequest。

if(!Request.Url.Host.ToLower().contains("mysite.com")){
  Response.Redirect("error.html");
}

如果我记得,当我最后一次检查我的站点cpanel时,我看到一个功能,停止重定向到我的域名,如果检查。我使用Hostso作为我的主机,所以请检查他们的测试面板。

希望它至少有一点帮助:)

Fredrik wirth

如果你想在代码中处理,那么在全局中处理。

void Application_BeginRequest(object sender, EventArgs e)
{
    if (!context.Request.Url.Host.ToLower().Equals("www.mydomain.com"))
    {
        context.Rewritepath("/invalidpage.aspx");
    }
}

另一个简单的方法是在IIS中为你的网站指定一个主机头。

http://technet.microsoft.com/en-us/library/cc753195 (v = ws.10) . aspx注意:我是用手机写的,所以要考虑拼写错误