拒绝访问除索引文件之外的所有文件 - Apache2

Posted

技术标签:

【中文标题】拒绝访问除索引文件之外的所有文件 - Apache2【英文标题】:Deny access to all files except index file - Apache2 【发布时间】:2011-12-15 01:02:26 【问题描述】:

我正在配置一个 Apache2 服务器,但我无法弄清楚如何拒绝对除索引文件之外的所有文件/目录的访问。

我的网站位于 /var/www/ 中

这是我当前在 /etc/apache2/apache2.conf 文件中的设置:

<Directory />
  Order Deny,Allow
  Deny from all
  Options None
  AllowOverride None
</Directory>

<Directory /var/www/>
  Order Allow,Deny
  Allow from all
</Directory>

如何解决我的问题?谢谢!

【问题讨论】:

SO 题外话;属于 webmasters.stackexchange.com 【参考方案1】:

尝试为 index.php 添加&lt;FilesMatch&gt;。如果在此位置不起作用,请将其移至目录的Deny from all 上方。将index.html 更改为您的索引文件。

<Directory />
  Order Deny,Allow
  Deny from all
  Options None
  AllowOverride None
</Directory>

<Directory /var/www/>
  # Deny first, then allow
  Order deny,allow
  # Deny everyone from everything
  Deny from all

  <FilesMatch index\.html>
    # but allow index.html
    Allow from all
  </FilesMatch>
</Directory>

【讨论】:

【参考方案2】:

我认为您最好将所有内容都通过管道传输到索引文件,而不是拒绝访问其他所有内容。

这可以通过 RewriteRule 来完成:

RewriteEngine On
# index goes to index (this is first to prevent infinite loop)
RewriteRule ^/index\.html$ - [L]
# everything else goes to index
RewriteRule .* /index.html [L]

【讨论】:

以上是关于拒绝访问除索引文件之外的所有文件 - Apache2的主要内容,如果未能解决你的问题,请参考以下文章

AWS S3 拒绝除 1 个用户之外的所有访问 - 存储桶策略

拒绝除特定范围之外的所有 IP 访问 AWS S3

在 AWS 上拒绝除 cloudwatch 之外的所有出站流量

有没有办法读取除python apache beam中定义的文件列表之外的所有文件?

使用 htaccess 拒绝访问除少数文件夹外的所有文件夹

Java Spring 控制器拒绝除 GET 之外的所有请求