如何拒绝http://sub.mydomain.com/的访问权限,但允许(完全)http://sub.mydomain.com/test(或http://sub.mydomain.com/test/)
后面有一个magento后端答案 0 :(得分:34)
.htaccess指令apply to that directory, and all subdirectories thereof,因此您应该禁止在DocumentRoot中访问,
http://sub.mydomain.com/.htaccess:
Order deny,allow
Deny from all
并在您希望允许访问的任何特定子目录中覆盖它,
http://sub.mydomain.com/test/.htaccess:
Order allow,deny
Allow from all
答案 1 :(得分:8)
根目录下的.htaccess怎么样,有以下几行?
RewriteEngine On
# check if request is for subdomain
RewriteCond %{HTTP_HOST} ^sub.mydomain.com$ [NC]
# check if 'test' isnt part of request
RewriteCond %{REQUEST_URI} !^/test/?(.*)$ [NC]
# if subdomain and no 'test' part, redirect to main domain...
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R,L]
因此,如果'/ test /'部分存在,则不会发生重定向......
答案 2 :(得分:1)
尝试在sub.mydomain.com中创建.htaccess文件以获取deny,并在sub.mydomain.com/test中尝试for。
或者您可以从http://sub.mydomain.com/重定向到拒绝子目录。
答案 3 :(得分:1)
我知道这是一个非常老的线程,但是我已经仔细研究了这种情况几天了,终于使它起作用了,因此我想分享一下我的解决方案以供进一步参考。
从Apache 2.4版开始(我猜是这样),可以使用指令<RequireAll>
和<RequireAny>
。
这可以用来允许访问特定的子文件夹。
我对.htaccess的解决方案(从此网站启发:https://www.the-art-of-web.com/system/apache-authorization/):
SetEnvIf REQUEST_URI "^/test/.*" PUBLICACCESS
# Use for multiple subfolders:
# SetEnvIf REQUEST_URI "^/(?:test|test2|test3|test4)/.*" PUBLICACCESS
<RequireAny>
<RequireAll>
# Public access
Require env PUBLICACCESS
Require all granted
</RequireAll>
<RequireAll>
# Require user and password
AuthType Basic
AuthName "Secured"
AuthUserFile /var/www/example.com/.htpasswd
Require valid-user
</RequireAll>
</RequireAny>
答案 4 :(得分:0)
我正在使用由 cpanel 驱动的服务器,它将添加如下所示的 .htaccess 条目:
#----------------------------------------------------------------cp:ppd
# Section managed by cPanel: Password Protected Directories -cp:ppd
# - Do not edit this section of the htaccess file! -cp:ppd
#----------------------------------------------------------------cp:ppd
AuthType Basic
AuthName "Protected"
AuthUserFile "/home/****/.htpasswds/sites/****/passwd"
Require valid-user
#----------------------------------------------------------------cp:ppd
# End section managed by cPanel: Password Protected Directories -cp:ppd
#----------------------------------------------------------------cp:ppd
我想允许访问特定的子文件夹,解决方案是在该子文件夹中创建一个 .htaccess 文件并将以下内容放入其中:
Satisfy any