使用.htaccess阻止访问网址

问题描述:

如何阻止用户查看位于主域名文件夹中的网站?例如:主域是www.maindomain.com。当我在cPanel中为另一个帐户创建子域名时,它会创建它可以访问的文件夹,例如某人输入www.maindomain.com/subdomain。我想阻止某些文件夹,但留下其他人,因为我有页面在文件夹中:wwwmaindomain/contact-us。我怎样才能做到这一点?希望这是足够清晰的:)使用.htaccess阻止访问网址

在htaccess文件在你的文档根目录添加这些规则(maindomain.com):

RewriteEngine On 

RewriteCond %{HTTP_HOST} ^(www\.)?maindomain.com$ [NC] 
RewriteRule ^(subdomain1|subdomain2|subdomain3) - [L,F] 

这将返回“403禁止”如果你试图访问/subdomain1,/subdomain2/subdomain3来自maindomain.com主机。如果你不想返回一个403,你也可以重定向:

RewriteEngine On 

RewriteCond %{HTTP_HOST} ^(www\.)?maindomain.com$ [NC] 
RewriteRule ^(subdomain1|subdomain2|subdomain3)/[L,R=301] 

这重定向从maindomain.com主机文档根目录的子域的任何访问。


编辑:

规则添加到htaccess中的顶子域中的文件夹中找到:

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

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(www\.)?maindomain.com$ [NC] 
RewriteRule ^/[L,R=301] 
+0

感谢您的回复。我已经尝试了第一个,其中子域被阻止。它会阻止第一个(子域1),但不会阻止我在“|”之后写入的其余部分。任何想法为什么? – Roland 2013-04-08 11:41:51

+0

我现在看到它适用于子域(文件夹),里面没有.htaccess文件。某些子域具有.htaccess文件,阻止/重定向不起作用。下面是我在那些.htaccess文件有:RewriteEngine叙述上 的RewriteCond%{} REQUEST_FILENAME -d 的RewriteCond%{} REQUEST_FILENAME \ PHP -f 重写规则^ $ $ 1.PHP – Roland 2013-04-08 12:19:37

+0

我删除的.htaccess的内容。(*)。文件在子域中,上传到服务器,然后粘贴回来,上传和它的作品!我不知道这是为什么,这可能取决于哪个.htaccess最后上传了?无论如何,它现在的作品,非常感谢:) – Roland 2013-04-08 12:55:09

尝试在你的.htaccess重写规则如下

RewriteEngine On 
RewriteRule ^subdomain/(.*) /index.php [R=403,NC,L] 

这将重定向任何/子请求与禁止回应码你的index.php

非常有效的方式做,这是将一个空白的index.php文件,你不想显示的文件夹,所以没有需要惹htaccess的,或者你可以创建一个新的.htaccess与此代码

deny from all 

保存此作为perticular文件夹的.htaccess你不希望展现给pubblic,但是我perfer第一个选项。