我的大学有多个服务器,它们之间镜像相同的数据,所以我可以访问例如
foo.uni.edu/file.php
bar.uni.edu/file.php
问题是,并非所有服务器都安装了 PHP,所以如果他们通过没有安装 PHP 的服务器建立连接,任何人都可能下载我的 php 文件。有没有办法,可能用 .htaccess 来避免这种情况?如在安装 PHP 服务器的情况下只允许打开 PHP 文件?
如果可以将文件存储在文档根目录之外,则可以通过将所有敏感数据存储在 docroot 之外来解决此问题。然后,您将使用可公开访问的脚本include
来访问这些文件。
因此,如果您上传到/username/public_html
, 并且public_html
是您的文档根目录(例如foo.uni.edu/file.php
is /username/public_html/file.php
),那么您将上传到/username/file.php
并放置另一个脚本,/username/public_html
其中仅包含类似include('../file.php');
在任何情况下,这是一个很好的做法,以防服务器上的配置错误阻止 PHP 被解析。
如果未启用,您还可以尝试使用IfModule
并FilesMatch
拒绝访问 PHP 文件:mod_php
<IfModule !mod_php.c>
<FilesMatch "\.php$">
Order Deny,Allow
Deny from All
</FilesMatch>
</IfModule>
如果这不起作用,请尝试!mod_php5.c
。