apache - .htaccess 可以用来过滤白名单吗?

标签 apache .htaccess whitelist

有没有办法生成可接受的文件或类型的白名单?我已经看到了拒绝文件请求的秘诀 - 是否可以拒绝除列表中的请求之外的所有请求?

我想到的白名单是这样的:

*.html;*.jpg;*.css;*.php

...等等

我假设其他文件请求可能会导致 404 文件未找到

谢谢

最佳答案

您可以在根 .htaccess 中创建这样的白名单:

# deny everything first
Order Deny,Allow
Deny from  all

# then allow selected whitelisted extensions
<FilesMatch '\.(php|html|jpe?g|css|js)$'>
  Allow from all
</FilesMatch>

编辑:要为非白名单文件返回 404,请使用以下规则:

RewriteEngine On

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule !\.(php|html|jpe?g|css|js)$ - [L,NC,R=404]

RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+)$ /index.php?page=$1 [QSA,L]

关于apache - .htaccess 可以用来过滤白名单吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34150395/

相关文章:

apache - 从 Apache 日志中排除用户代理

php - Laravel 和通过特定 Laravel 路由的双向 SSL

kubernetes - 谷歌容器引擎中的 IP 白名单,入口不起作用

facebook-graph-api - 如何将 Facebook 应用列入白名单以通过图形 API 发送私有(private)收件箱消息

c++ - 如何有效地检查字符串是否具有 C++ 中的特殊字符?

php - 如何近乎实时地将数据从 Wordpress 网站(LAMP 堆栈)获取到 Android 应用程序?

apache - hive 错误:java.io.IOException:无法创建代理提供程序类org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider

apache - a2ensite 'Site: ___ does not exist' 错误,即使使用 .conf 文件

apache - 使用 htaccess 记录外部 CDN 缓存的图像文件名

apache - .htaccess - 仅针对一个参数的内部友好 URL 重写