在我使用 PHP 的旧网站上,我有一个.htaccess
in 目录/noaccess
,如下所示:
# /noaccess/.htaccess
<FilesMatch "^.*$">
order allow,deny
deny from all
</FilesMatch>
我有一个 PHP 文件,比如,
<html>
<body>
<?php include('noaccess/blah.ssi'); ?>
</body>
</html>
这工作正常,内容blah.ssi
可见。
但是,在我当前的站点上,我使用的是 SSI 和以下内容:
<html>
<body>
<!--#include virtual="noaccess/blah.ssi" -->
</body>
</html>
不起作用。日志显示unable to include "noaccess/blah.ssi"
。删除该FilesMatch
指令并且它可以工作。所以我显然误解了该命令的工作原理,我没有意识到它会阻止 Apache 本身。那么如何阻止来自网络的访问但允许 SSI 访问?(我认为我可以(并且应该)存储我不想在外部访问的东西,public_html
但这似乎在 SSI 包括中也不起作用 - 但无论如何,即使它确实如此,我很想知道如何做这个)。
谢谢,T。