您现在的位置是:首页 >趣味人生 > 让Apache禁止IP直接访问的方法网站首页趣味人生

让Apache禁止IP直接访问的方法

admin网络2018-11-03 13:28:431145人围观
简介让Apache禁止IP直接访问的方法
让人只能通过域名来访问网站,而不能通过IP来直接访问

如果你的Apache开通了虚拟主机,则需要修改conf/extra/httpd-vhosts.conf文件。如何判断Apache是否开通了虚拟主机,在配置文件httpd.conf中搜索,若有类似如下的选项的,则开启了虚拟主机。#为注释。

# Virtual hostsInclude conf/extra/httpd-vhosts.conf

  若是开通了虚拟主机,则需要在httpd-vhosts.conf中修改配置如下;若没有开通虚拟主机,则可以直接在httpd.conf文件最后面,加入以下代码:

NameVirtualHost XXX.XXX.XXX.XXX
<virtualhost XXX.XXX.XXX.XXX:80>
ServerName  XXX.XXX.XXX.XXX
<Directory />
Order Allow,Deny
Deny from all
</Directory>
</virtualhost>
<virtualhost XXX.XXX.XXX.XXX:80>
ServerName  yourdomain.com
DocumentRoot  /var/www/
</virtualhost>

  其中XXX.XXX.XXX.XXX为你的IP地址,第一处virtualhost配置为拒绝IP的任何访问请求,返回403错误。第二处的virtualhost配置为允许通过yourdomain.com这个域名访问,网站主目录为/var/www/(假设这是你的网站主目录)

  方法二、利用Apache的Rewrite和PHP实现400错误

  新建一个虚拟主机配置,将来自IP的访问Rewrite到一个自定义的PHP页面。

ServerName XXX.XXX.XXX.XXXDocumentRoot /var/www/error/RewriteEngine OnRewriteRule ^.* /400.php

  其中XXX.XXX.XXX.XXX为你的IP地址,网站主目录为/var/www/error/

  编辑文件/var/www/error/400.php,内容如下:

<?php
header(“HTTP/1.1 400 Bad Request”);  
?>
<h1>Bad Request</h1>

  这样以来,即可实现直接用IP访问返回400错误了。

  修改完成之后,务必要重新加载Apache配置

上一篇:已无上一篇

下一篇:已无下一篇

文章评论