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

时间:2014-08-11 06:09:55

标签: apache .htaccess dns vps

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

Ex ::  mydomain.com     === server my site content
       otherdomain.com  ===  also server my site content

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

请提供任何设置以帮助阻止此

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

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

2 个答案:

答案 0 :(得分: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>

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>

这种方式的工作方式是Apache使用ServerName过滤请求,但是任何与任何VirtualHosts ServerNames都不匹配的请求都会被发送到服务器上的第一个VirtualHost,在这种情况下,第一个VirtualHost中的ServerName是'Catchall'它不会匹配任何请求,因为它不是有效的域名,而是因为它是第一个VirtualHost,它将服务于所有不匹配的域。然后,我们使用location容器来定义allow或deny指令。

如果您想使用文件系统而不是url特定指令,例如'Allow overide all',您可以使用目录容器而不是以下列格式的位置:

DocumentRoot /var/www/html
<Directory "/var/www/html">
    Require all granted
    Allow overide all
</Directory>

答案 1 :(得分:4)

如果域名不属于您,则无法将其指向您的服务器,但您可以使用VirtualHost的

将其指向一个serperate页面。

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

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

<VirtualHost *:80>
DocumentRoot /www/example2
ServerName www.example.org
</VirtualHost>