1、Apache2.4.1曾经:

  第一种 直接拒绝訪问


打开 httpd.conf  文件,将一下配置追加到文件最后。



#直接拒绝全部非法域名
<VirtualHost *:80>
ServerName *
ServerAlias *
<Location />
Order Allow,Deny
Deny from all
</Location>
ErrorLog "/alidata/log/httpd/error.log"
CustomLog "/alidata/log/httpd/info.log" common
</VirtualHost>



#同意的域名
<VirtualHost *:80>
DocumentRoot /alidata/www
ServerName www.你的域名
ServerAlias www.你的域名
<Directory "/alidata/www">
Options Indexes FollowSymLinks
AllowOverride all
Order allow,deny
Allow from all
</Directory>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)-htm-(.*)$ .php?
RewriteRule ^(.*)/simple/([a-z0-9\_]+\.html)$ /simple/index.php?
</IfModule>
ErrorLog "/alidata/log/httpd/error.log"
CustomLog "/alidata/log/httpd/info.log" common
</VirtualHost>


重新启动apache服务:service httpd restart

另外一种 跳转到指定文件夹或文件


打开 httpd.conf  文件,将一下配置追加到文件最后。

#全部非法域名跳转到指定文件夹或文件
<VirtualHost *:80>
#指定文件夹或文件
DocumentRoot "/yun/www"
ServerName *
ServerAlias *
</VirtualHost>



#同意的域名
<VirtualHost *:80>
DocumentRoot /alidata/www
ServerName www.你的域名
ServerAlias www.你的域名
<Directory "/alidata/www">
Options Indexes FollowSymLinks
AllowOverride all
Order allow,deny
Allow from all
</Directory>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)-htm-(.*)$ .php?
RewriteRule ^(.*)/simple/([a-z0-9\_]+\.html)$ /simple/index.php?
</IfModule>
#错误日志
ErrorLog "/alidata/log/httpd/error.log"
CustomLog "/alidata/log/httpd/info.log" common
</VirtualHost>


重新启动apache服务:service httpd restart

第三种:配置单个域名拒绝或跳转(不建议使用)



# 拒绝单个域名 (若要拒绝多个 须要配置多个VirtualHost)
<VirtualHost *:80>
ServerName www.拒绝的域名
ServerAlias www.拒绝的域名
<Location />
Order Allow,Deny
Deny from all
</Location>
</VirtualHost>



2、Apache2.4.1 以后:


apache2.4.1 以后不再须要NameVirtualHost以及不再支持ServerName * 这样的写法。

使用ServerName * 会报Invalid ServerName “*” use ServerAlias to set multiple server names.

第一种:直接拒绝

打开 httpd.conf  在文件末尾加上一下代码:

#禁止全部非法域名
<VirtualHost *:80>
ServerName serverip
ServerAlias *
<Location />
Order Allow,Deny
Deny from all
</Location>
</VirtualHost>
#同意訪问的域名
<VirtualHost *:80>
DocumentRoot /alidata/www
ServerName www.你的域名
ServerAlias www.你的域名
<Directory "/alidata/www">
Options Indexes FollowSymLinks
AllowOverride all
Order allow,deny
Allow from all
</Directory>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)-htm-(.*)$ .php?
RewriteRule ^(.*)/simple/([a-z0-9\_]+\.html)$ /simple/index.php?

</IfModule>
#错误日志保存位置
ErrorLog "/alidata/log/httpd/error.log"
CustomLog "/alidata/log/httpd/info.log" common
</VirtualHost>


重新启动apache服务:service httpd restart

另外一种:跳转到指定文件夹或文件

打开 httpd.conf  在文件末尾加上一下代码:

#禁止全部非法域名
<VirtualHost *:80>
DocumentRoot "/alidata/www"
ServerName serverip
ServerAlias *
<Location /alidata/www>
Order Allow,Deny
Allow from all
</Location>
</VirtualHost>
#同意訪问的域名
<VirtualHost *:80>
DocumentRoot /alidata/www
ServerName www.你的域名
ServerAlias www.<span style="font-family: Arial, Helvetica, sans-serif;">你的域名</span>
<Directory "/alidata/www/fdt">
Options Indexes FollowSymLinks
AllowOverride all
Order allow,deny
Allow from all
</Directory>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)-htm-(.*)$ .php?
RewriteRule ^(.*)/simple/([a-z0-9\_]+\.html)$ /simple/index.php?
</IfModule>
#错误日志保存位置
ErrorLog "/alidata/log/httpd/error.log"
CustomLog "/alidata/log/httpd/info.log" common
</VirtualHost>


重新启动apache服务:service httpd restart

第三种:配置单个域名拒绝或跳转(不建议使用)

# 拒绝单个域名 (若要拒绝多个 须要配置多个VirtualHost)
<VirtualHost *:80>
ServerName www.game673.com
ServerAlias www.game673.com
<Location />
Order Allow,Deny
Deny from all
</Location>
</VirtualHost>