仅允许localhost访问存在所有包含php文件的文件夹

时间:2011-06-07 11:15:02

标签: php .htaccess

我们都有像'connect_db.php'这样的php文件,仅供参与。

假设我在“www / html / INC”

中包含所有这些包含.php的文件

我有index.php

我希望index.php可以从浏览器访问每个人,但我想阻止用户直接访问“www / html / INC”文件夹。 (例如,在浏览器中输入'www.domain.com/INC/' - > 404;错误等)

我如何实现这一目标?

请首先在根目录中使用.htaccess文件。

5 个答案:

答案 0 :(得分:10)

这样的东西
<Directory /INC>
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
</Directory>

应该有用。

答案 1 :(得分:6)

  

我如何实现这一目标?

别。根据{{​​3}},将connect_db.php放在/ www /中更安全,而不是放在/ www / html / INC /中。如果您 要这样做,那么您将使用/www/html/.htaccess:

<Directory "/www/html/INC">
   order allow,deny
   deny from all
</Directory>

答案 2 :(得分:4)

Google搜索将我带到了这里,所以我想我今天在apache docs发布了我发现的内容。我不确定它可用的apache版本,但搜索你的版本进行验证。

现在您可以使用Require local。我建议将.htaccess放在要限制访问权限的文件夹中。但是,如果你必须在根目录中执行它,那么它就是这样的:

<Directory "www/html/INC">
    Require local
</Directory>

答案 3 :(得分:2)

从Apache 2.4开始,Require即可。

E.g。以下内容拒绝除/www/html/INC以外的任何人访问localhost目录:

<Directory "/www/html/INC">
    Require all granted
    Require ip 127.0.0.1
</Directory>

答案 4 :(得分:1)

connect_db.php移动到目录树中比公共目录更高的级别 和所有脚本,也不应该是可执行的。

/home/user/project/incs/ - 这是您的包容性脚本
/home/user/project/www/html - 这是您的index.php和其他可执行脚本。