如何阻止指向我的Apache托管网站的其他人的域名?

use*_*459 7 apache dns .htaccess vps

嗨我几周前在Linux VPS中使用专用IP运行我的网站我发现其他域名指向我的网站

Ex ::  mydomain.com     === server my site content
       otherdomain.com  ===  also server my site content
Run Code Online (Sandbox Code Playgroud)

如果我更新或修改其在其他域上的更新...

请帮助任何设置,以防止这种情况

在搜索了很多论坛之后,我发现基于名称的虚拟主机如何在VPS Linux中实现这一点请指导我或者此问题的任何其他解决方案请帮助

我也尝试看到反向IP查找我的IP显示两个域另一个是坏域指向我的服务器/ IP但它服务器我的网站内容..如何停止这请帮助

Air*_*bat 11

我同意@Azrael,但我想扩展它:

您可以根据具体情况将其域重定向到其他页面,但我建议您在大多数服务器上执行操作以及拒绝除正确域的流量之外的所有流量.

Apache 2.4及更新版本:

<VirtualHost *:80>
    ServerName catchall
    <Location />
        Require all denied
    </Location>
</VirtualHost>

<VirtualHost *:80>
    ServerName allowed.com
    <Location />
        Require all granted
    </Location>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

Apache 2.2及更早版本:

<VirtualHost *:80>
    ServerName catchall
    <Location />
        Order allow,deny
        Deny from all
    </Location>
</VirtualHost>

<VirtualHost *:80>
    ServerName allowed.com
    <Location />
        AllowOverride All
        Order allow,deny
        allow from all
    </Location>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

其工作原理是,Apache使用服务器名称过滤请求,但是不匹配servernames节点发送到第一虚拟主机服务器上的任何VirtualHosts任何请求,在这种情况下,在第一个虚拟主机的服务器名称是"全部接收",这不会匹配任何请求,因为它不是有效的域名,而是因为它是第一个VirtualHost,它将服务于所有不匹配的域.然后,我们使用location容器来定义allow或deny指令.

如果要使用文件系统而不是url特定指令(例如"Allow overide all"),则可以使用以下格式的目录容器而不是位置:

DocumentRoot /var/www/html
<Directory "/var/www/html">
    Require all granted
    Allow overide all
</Directory>
Run Code Online (Sandbox Code Playgroud)


Azr*_*ael 6

如果域不是你的,没有办法喜欢......不要将它指向你的服务器,但是你可以使用 VirtualHost 将它指向一个 serperate 页面

通过执行以下操作,创建一个文件夹,其中包含所需的 html/php 文件,说明该页面不存在或其他任何内容

然后编辑您的 VirtualHosts 文件,假设您使用 apache,该文件将位于以下目录中: /etc/apache2/sites-available/ 打开调用的文件default并添加以下代码:

<VirtualHost *:80>
DocumentRoot /www/example2
ServerName www.example.org
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)