原文地址:[url]https://edmondscommerce.github.io/apache/blocking-direct-ip-access-in-apache.html[/url]
测试环境:
CentOS Linux release 7.3.1611 (Core)
Apache: 2.4.6
如果你是使用 Name based virtual hosts,通常你会希望禁止用户直接使用 IP 地址访问你的网站。实现方法如下:
新建配置文件:
内容如下:
重启 Apache:
之后,使用 IP 直接访问,浏览器会报 403 错误,同时会在页面上显示 “Please use domain to access this site.”。
[size=large][color=red]注意:[/color][/size]如果你没有使用 Name based virtual hosts,仅仅是将域名直接解析到 Apache 服务器的话,那么同样会得到 403 错误。也就是说,需要有类似如下的设置:
测试环境:
CentOS Linux release 7.3.1611 (Core)
Apache: 2.4.6
如果你是使用 Name based virtual hosts,通常你会希望禁止用户直接使用 IP 地址访问你的网站。实现方法如下:
新建配置文件:
vim /etc/httpd/conf.d/block-ip-access.conf
内容如下:
<VirtualHost *:80>
ServerName <your ip address>
Redirect 403 /
ErrorDocument 403 "Please use domain to access this site."
DocumentRoot /dev/null/
UseCanonicalName Off
UserDir disabled
</VirtualHost>
重启 Apache:
systemctl restart httpd
之后,使用 IP 直接访问,浏览器会报 403 错误,同时会在页面上显示 “Please use domain to access this site.”。
[size=large][color=red]注意:[/color][/size]如果你没有使用 Name based virtual hosts,仅仅是将域名直接解析到 Apache 服务器的话,那么同样会得到 403 错误。也就是说,需要有类似如下的设置:
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
...
</VirtualHost>