有没有办法生成可接受的文件或类型的白名单?我已经看到了拒绝文件请求的秘诀 - 是否可以拒绝除列表中的请求之外的所有请求?
我想到的白名单是这样的:
*.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/