我的服务器上的.htaccess
文件中有以下内容:
<Files index.php>
Order Deny,Allow
Deny from All
Allow from 80.168.22.149
</Files>
.htaccess
位于www.example.com/subdir/.htaccess
index.php
文件位于的同一子目录中。
如果我尝试从另一个IP访问该页面,则会出现常见错误:
Forbidden
You do not have permission to access this document.
但是,当我尝试访问/subdir/images
等子目录时,我得到了同样的错误。 如果我尝试从允许的OR禁止的IP地址进行访问,则会出现此错误。我认为<Files>
限制只会禁止访问指定的文件?
我需要成为唯一可以访问index.php
的IP地址,但我需要能够链接到/subdir/
中的子目录并让任何人查看它们。
答案 0 :(得分:0)
而不是<Files>
指令,您可以在/subdir/.htaccess
中使用此重写规则:
RewriteEngine On
RewriteBase /subdir/
RewriteCond %{REMOTE_HOST} !=80.168.22.149
RewriteRule ^index\.php$ - [F,NC]
答案 1 :(得分:0)
<Files>
指令的问题在于它匹配每个index.php
,包括子目录中的index.php
个文件。
唯一的解决方法是使用<Location>
指令,但是您无法在.htaccess
文件中使用它。
您需要编辑Apache配置文件,并在域<Location>
指令内添加<VirtualHost>
指令