Htaccess - 限制对文件的访问,但仅限于当前目录

问题描述 投票:0回答:2

我有index.php 文件,我想只允许使用htaccess 访问特定IP。

但是我想允许每个人访问子目录中名为index.php 的文件。

我应该如何编写只影响当前目录中的index.php的规则?这是我尝试过的,但没有成功,它也阻止了子目录中的index.php:

 <Files "./index.php">
        Order deny,allow
        Deny from all
        Allow from 192.168.24.2
    </Files>
.htaccess
2个回答
1
投票

您可以在包含“Allow from all”的子目录中编写 .htaccess,从而允许访问这些特定目录以及它们以后的子目录。


0
投票

这可以使用

mod_rewrite
来完成,如下所示:

RewriteCond %{REMOTE_ADDR} !=192.168.24.2
RewriteRule ^index\.php$ - [F]

第一行检查客户端 IP 地址是否是允许的地址,第二行只是告知服务请求失败(错误 403)。

请记住将

RewriteEngine On
放在建议代码之前的某个位置。


您可以使用 正则表达式 或通过复制

RewriteCond
行来允许多个 IP 地址,如下所示:

RewriteCond %{REMOTE_ADDR} !=127.0.0.1
RewriteCond %{REMOTE_ADDR} !^192\.168\.24\.[0-9]{1,3}$
RewriteCond %{REMOTE_ADDR} !=192.168.32.6
RewriteRule ^index\.php$ - [F]

上面的示例将允许本地主机访问以及 192.168.24.0/24 子网(包括 192.168.24.6)和 192.168.32.6 中的任何人访问,但不允许 192.168.32.7 或 192.168.2.6 访问。

注意:我在这里只使用了 IPv4 地址,但您可以以相同的方式检查 IPv6 地址。

© www.soinside.com 2019 - 2024. All rights reserved.