如何拒绝所有IP对.htaccess中虚拟目录的访问,并接受1个IP?

如何拒绝所有IP对.htaccess中虚拟目录的访问,并接受1个IP?

当您需要拒绝所有 IP 访问文件夹时,您应该将 .htaccess 放入此文件夹中,该文件夹必须包含:

Order Deny,Allow
Deny from all
Allow from 1.1.1.1

您可以在虚拟主机中执行此操作,如下例所示:

<Directory "/var/www/html/mysite/my_folder">
Order Deny,Allow
Deny from all
Allow from 1.1.1.1
</Directory>

但是,当 my_folder 及其虚拟目录不存在时,我该如何解决这个任务?

有 .htaccess,位于“mysite”文件夹(/var/www/html/mysite/.htaccess):

AddDefaultCharset utf-8
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on
RewriteRule ^favicon.ico$ - [F,L]
# if directory exist, use it
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# if not, sent requests to index.php
#RewriteRule . index.php <-- before
RewriteRule ^([^/].*)$ /index.php/$1 [L] # <-- after

答案1

您应该使用<Location>而不是<Directory>.

<Location /my_folder/>
Order Deny,Allow
Deny from all
Allow from 1.1.1.1
</Location>

请参阅有关部分的文档阿帕奇2.2,阿帕奇2.4

相关内容