【发布时间】:2015-07-30 05:07:37
【问题描述】:
我正在尝试拒绝任何在特定目录中浏览 PHP 文件的人的访问:
example.com/inc/
我创建了一个包含以下内容的 example.com/inc/.htaccess 文件:
Order deny,allow
Deny from all
当我尝试访问其中一个文件时,这会导致 403 Forbidden 响应。例如:example.com/inc/file.php
问题是,我的网络服务器也被拒绝访问,我的应用程序停止工作。
我怎样才能拒绝浏览此类 PHP 文件的人访问但允许我的共享网络服务器访问?
注意:我使用的是 GoDaddy 共享主机。
【问题讨论】:
-
您的网络服务器如何“也被拒绝访问”?那是一个apache指令。除非您通过 http 将文件包含到其他脚本中,否则这应该不是问题。 PHP 在文件系统上工作,这意味着它忽略 apache 指令/规则。另一种选择(通常是首选)是仅移动您不允许访问 Web 根目录之外的目录。然后 php 无法从该目录运行,但其他脚本可以访问包含文件等文件。
-
尝试访问
file.php的人和您的Web 服务器访问file.php之间没有区别。HTTP_REFERER可能可以使用,但这是一个非常弱的检查。 -
@anubhava 您的网络服务器是否需要通过 apache 通过 http 访问网络服务器上的另一个文件?
-
Web 服务器需要访问实际上是一个令人困惑的术语,因为对
file.php的每次访问都只能通过站点的网络服务器。可能OP意味着网站上有一些指向file.php的链接。