拒绝访问除索引文件之外的所有文件 - 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 添加<FilesMatch>
。如果在此位置不起作用,请将其移至目录的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 个用户之外的所有访问 - 存储桶策略
在 AWS 上拒绝除 cloudwatch 之外的所有出站流量