Linux

如何拒絕對所有 IP 的 .htaccess 中的虛擬目錄的訪問,並接受 1 個 IP?

  • July 31, 2015

當您需要拒絕訪問所有 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

您應該使用<Location>而不是<Directory>.

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

請參閱有關Apache 2.2Apache 2.4部分的文件。

引用自:https://unix.stackexchange.com/questions/219353