首页 > 解决方案 > 仅允许使用 mod_rewrite 的虚拟主机中的主机

问题描述

我只需要允许在我的虚拟主机上配置的主机。

例如:在我的 apache 中,我有以下配置:

<VirtualHost *:80>
    DocumentRoot /var/www/html
    ServerName mydomain.or
</VirtualHost>

<VirtualHost *:80>
    ServerName www.mydomain.com
    Redirect 301 / https://mydomain.or
</VirtualHost>

用户有自己的 DNS 服务器配置:www.dnsclient.or 使用我的 ip 设置,当他访问浏览器时会显示不安全的连接消息,这就是我想要阻止的,我需要只有配置的虚拟主机才能访问.

标签: regexapachemod-rewriteserverhttpd.conf

解决方案


您可以在 VirtualHost 中使用 RewriteRule。

RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www.mydomain.com|mydomain.or)$ [NC]
RewriteRule .* - [F]

此规则仅允许 www.mydomain.com 和 mydomain.or。在基于名称的虚拟主机中,如果接收到的请求与指定的 ServerName 指令之一不匹配,它将由配置文件中定义的第一个作为默认值提供服务。


推荐阅读