这是我的 .htaccess
<Files *>
Order Deny,Allow
Deny from all
</Files>
<Files index.php>
Order Deny,Allow
Allow from all
</Files>
这不起作用,因为如果我在浏览器中键入主机名,它会提供index.php,但apache似乎不应用Files指令而是返回一个不允许的文件访问页面,我需要键入全名文件(例如'index.php')使其有效。这不是很方便......
如果我希望用户只访问我网站中每个文件夹的索引文件,该怎么办? 所有其他文件只是脚本包含,所以我相信我正在尝试使它们无法从网络上访问(或者可能不是,如果只有你有理由证明另一种情况)。
无论上述问题如何,这是正确的工作方式吗? (我认为这里的两个指令不是很整洁,但这是唯一的方法,几乎是我知道避免访问文件的唯一方法。)
答案 0 :(得分:1)
不完全确定为什么需要这样做,但您可以使用mod_setenvif
(无需将其包含在<Files>
内)
SetEnvIf Request_URI ^/index.php$ index
Order Allow,Deny
Allow from env=index
这将导致访问hostname.com/到403,但允许hostname.com/index.php。如果你想允许/也可以添加
SetEnvIf Request_URI ^/$ index
到顶部。当然,所有这些都会使index.php链接到的任何内容也会返回403。
答案 1 :(得分:0)
<Files *?>
Order deny,allow
Deny from all
</Files>
您只需添加一个问号即可匹配至少一个字符。