繁体   English   中英

使用Apache拒绝除索引以外的所有文件

[英]Deny all files except the index using apache

这是我的.htaccess

<Files *>
  Order Deny,Allow
  Deny from all
</Files>

<Files index.php>
  Order Deny,Allow
  Allow from all
</Files>

这是行不通的,因为如果我在浏览器中输入主机名,它将提供index.php,但是apache似乎没有应用“文件”指令,而是返回了不允许的文件访问页面,我需要输入全名文档(例如“ index.php”)以使其正常工作。 这不是很方便...

如果我希望用户仅访问网站中每个文件夹的索引文件,该如何进行? 所有其他文件都只是脚本包含的内容,因此我相信我正在做正确的尝试,以使它们无法从Web上访问(或者,如果您只有一个理由来证明另一种情况,也许不能)。

不管上面的问题,这是正确的方法吗? (我认为这里的两个指令并非整齐,但这是避免访问文件的唯一方法,几乎​​是我所知道的唯一方法)。

不确定是否需要这样做,但是可以使用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。

<Files *?>
    Order deny,allow
    Deny from all
</Files>

您只需要添加一个问号即可匹配至少一个字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM