如何配置.htaccess以防止www.parent.com/child访问www.child.com

时间:2014-12-16 06:04:37

标签: apache .htaccess

我有一个unix共享主机:

/  
.htaccess
a.html
....
child/
   .htaccess
   b.html
   ......

www.parent.com指向/
www.child.com指向/ child

我必须在不停止www.child.com工作的情况下阻止访问www.parent.com/child 结果可能是重定向,404或访问被拒绝 .htaccess文件基于html5boilerplate .htaccess文件。

我尝试修改/.htaccess但没有成功:

尝试#1:

<Directory /child>
    Order Deny,Allow
    Deny from all
 </Directory>

- &GT; child.com停止了工作。

尝试#2:

 RewriteCond %{HTTP_HOST} ^.*parent.com.*$ [NC]
 RewriteRule ^.*/child.*$ / [NC]

- &GT;什么都没发生。我也尝试了不同的正则表达式组合。

尝试#3:

  <IfModule mod_rewrite.c>
     RewriteCond %{REQUEST_URI}   ^.*child.*$              [NC]
     RewriteRule ^    /   [R=302.L]     
   </IfModule>

- &GT;什么都没发生。我知道这个是蛮力,但它是在尝试了主要的不那么激进的选择之后。

我知道RewriteEngine已启用,因为它有效:

<IfModule mod_rewrite.c>
     RewriteCond %{HTTPS} !=on
     RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
     RewriteCond %{HTTP_HOST} !=localhost [NC]
     RewriteCond %{HTTP_HOST} !=127.0.0.1
     RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

1 个答案:

答案 0 :(得分:1)

您可以将此规则用作/child/.htaccess内的第一条规则:

RewriteEngine on

RewriteCond %{HTTP_HOST} !^(www\.)?child\.com$ [NC]
RewriteRule ^ - [F,L]