怎么配置Apache服务器禁止所有非法域名访问自己的服务器
更新:HHH   时间:2023-1-7


本篇内容介绍了“怎么配置Apache服务器禁止所有非法域名访问自己的服务器”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1、http2.4.1以前:

  第一种 直接拒绝访问

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

<pre name="code" class="html"><pre name="code" class="html"><pre name="code" class="html">#直接拒绝所有非法域名
<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>
</pre><pre name="code" class="html"><pre name="code" class="html">#允许的域名
<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  文件,将一下配置追加到文件最后。

#所有非法域名跳转到指定目录或文件
<pre name="code" class="html"><pre name="code" class="html"><VirtualHost *:80>
#指定目录或文件
  DocumentRoot "/yun/www"
  ServerName *
  ServerAlias *
</VirtualHost>
</pre><pre name="code" class="html"><pre name="code" class="html">#允许的域名
<VirtualHost *:80>
  DocumentRoot /alidata/www/fdt
  ServerName www.fdt-art.com
  ServerAlias www.fdt-art.com
  <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

2、http2.4.1 以后:

http2.4.1 以后不再需要NameVirtualHost以及不再支持ServerName * 这种写法。

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

第一种:直接拒绝

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

<pre name="code" class="html"><pre name="code" class="html">#禁止所有非法域名
<VirtualHost *:80>
  ServerName 服务器ip
  ServerAlias *
  <Location />
    Order Allow,Deny
    Deny from all
  </Location>
</VirtualHost>
<pre name="code" class="html">#允许访问的域名
<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  在文件末尾加上一下代码:

<pre name="code" class="html"><pre name="code" class="html">#禁止所有非法域名
<VirtualHost *:80>
  DocumentRoot "/alidata/www"
  ServerName 服务器ip
  ServerAlias *
  <Location /alidata/www>
    Order Allow,Deny
    Allow from all
  </Location>
</VirtualHost>
</pre>
<pre name="code" class="html">#允许访问的域名
<VirtualHost *:80>
  DocumentRoot /alidata/www/fdt
  ServerName www.fdt-art.com
  ServerAlias www.fdt-art.com
  <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

“怎么配置Apache服务器禁止所有非法域名访问自己的服务器”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注天达云网站,小编将为大家输出更多高质量的实用文章!

返回服务器教程...