Você deve usar <Location>
em vez de <Directory>
.
<Location /my_folder/>
Order Deny,Allow
Deny from all
Allow from 1.1.1.1
</Location>
Veja o documento nas seções para Apache 2.2 , Apache 2.4 .
Quando você precisa negar o acesso à pasta para todo IP você deve colocar o .htaccess nesta pasta, que deve conter:
Order Deny,Allow
Deny from all
Allow from 1.1.1.1
Você pode fazer isso em hosts virtuais, como neste exemplo:
<Directory "/var/www/html/mysite/my_folder">
Order Deny,Allow
Deny from all
Allow from 1.1.1.1
</Directory>
Mas como posso resolver essa tarefa, quando my_folder não existe e seu diretório virtual?
Existe o .htaccess, que está localizado na pasta "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
Você deve usar <Location>
em vez de <Directory>
.
<Location /my_folder/>
Order Deny,Allow
Deny from all
Allow from 1.1.1.1
</Location>
Veja o documento nas seções para Apache 2.2 , Apache 2.4 .