使用.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]
答
尝试在你的.htaccess重写规则如下
RewriteEngine On
RewriteRule ^subdomain/(.*) /index.php [R=403,NC,L]
这将重定向任何/子请求与禁止回应码你的index.php
答
非常有效的方式做,这是将一个空白的index.php文件,你不想显示的文件夹,所以没有需要惹htaccess的,或者你可以创建一个新的.htaccess与此代码
deny from all
保存此作为perticular文件夹的.htaccess你不希望展现给pubblic,但是我perfer第一个选项。
感谢您的回复。我已经尝试了第一个,其中子域被阻止。它会阻止第一个(子域1),但不会阻止我在“|”之后写入的其余部分。任何想法为什么? – Roland 2013-04-08 11:41:51
我现在看到它适用于子域(文件夹),里面没有.htaccess文件。某些子域具有.htaccess文件,阻止/重定向不起作用。下面是我在那些.htaccess文件有:RewriteEngine叙述上 的RewriteCond%{} REQUEST_FILENAME -d 的RewriteCond%{} REQUEST_FILENAME \ PHP -f 重写规则^ $ $ 1.PHP – Roland 2013-04-08 12:19:37
我删除的.htaccess的内容。(*)。文件在子域中,上传到服务器,然后粘贴回来,上传和它的作品!我不知道这是为什么,这可能取决于哪个.htaccess最后上传了?无论如何,它现在的作品,非常感谢:) – Roland 2013-04-08 12:55:09