apache域名301跳转和访问控制的优先级

回复 收藏
背景:apache虚拟主机有两个域名 aaa.com bbb.com 其中bbb.com 访问的时候跳转到aaa.com,并且给该虚拟主机做了访问控制,只允许127.0.0.1访问。
问题:当访问bbb.com时,它是先跳转到aaa.com,还是直接403呢?

配置:
  1.     DocumentRoot "/usr/local/apache2/docs/aaa.com"
  2.     ServerName aaa.com
  3.     ServerAlias bbb.com
  4.    
  5.         RewriteEngine on
  6.         RewriteCond %{HTTP_HOST} ^bbb.com$
  7.         RewriteRule ^/(.*)$ http://aaa.com/$1 [R=301,L]
  8.    
  9.             Order deny,allow
  10.             Deny from all
  11.             Allow from 127.0.0.1
  12.    
测试:
# curl -x172.7.15.101:80 aaa.com -I
HTTP/1.1 403 Forbidden
Date: Tue, 29 Sep 2015 10:49:21 GMT
Server: Apache/2.2.16 (Unix) PHP/5.3.10
Content-Type: text/html; charset=iso-8859-1

# curl -x172.7.15.101:80 bbb.com -I
HTTP/1.1 301 Moved Permanently
Date: Tue, 29 Sep 2015 10:49:26 GMT
Server: Apache/2.2.16 (Unix) PHP/5.3.10
Location: http://aaa.com/
Content-Type: text/html; charset=iso-8859-1


此时可能会怀疑,访问控制的位置是在下面,所以调换位置:
  1.     DocumentRoot "/usr/local/apache2/docs/aaa.com"
  2.     ServerName aaa.com
  3.     ServerAlias bbb.com
  4.    
  5.             Order deny,allow
  6.             Deny from all
  7.             Allow from 127.0.0.1
  8.    
  9.         RewriteEngine on
  10.         RewriteCond %{HTTP_HOST} ^bbb.com$
  11.         RewriteRule ^/(.*)$ http://aaa.com/$1 [R=301,L]
  12.    
再次测试:

    DocumentRoot "/usr/local/apache2/docs/aaa.com"
    ServerName aaa.com
    ServerAlias bbb.com
   
            Order deny,allow
            Deny from all
            Allow from 127.0.0.1
   
        RewriteEngine on
        RewriteCond %{HTTP_HOST} ^bbb.com$
        RewriteRule ^/(.*)$ http://aaa.com/$1 [R=301,L]
   


一样的效果。 所以得出结论。

结论: 301跳转优先级会高于访问控制!


2015-09-29 10:57 举报
已邀请:
0

ztonglinyx

赞同来自:

soga   
0

riverxyz

赞同来自:

学习

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: