使用.htaccess阻止访问网址

时间:2013-04-08 11:02:23

标签: .htaccess

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

3 个答案:

答案 0 :(得分:3)

在.htaccess中尝试关注RewriteRule

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

这会将任何/子域请求重定向到带有禁止响应代码的index.php

答案 1 :(得分:1)

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

RewriteEngine On

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

如果您尝试从maindomain.com主机访问/subdomain1/subdomain2/subdomain3,则会返回“403 Forbidden”。如果您不想返回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]

答案 2 :(得分:0)

非常有效的方法是将一个空白的index.php文件放在你不想显示的文件夹中,这样就不需要乱用htaccess了,或者你可以用这段代码创建一个新的.htaccess

deny from all

将此保存为您不想向pubblic显示的那个特定文件夹的.htaccess,但是我更喜欢第一个选项。