我有一个网站,我想禁用该文件夹的某些文件执行扩展。
EG:www.yoursite.com/cache/test.php
不应该被执行。
我试过这段代码:
<FilesMatch "\.(htaccess|htpasswd|ini|phps|fla|psd|log|sh|zip|exe|pl|jsp|asp|htm|sh|cgi|py|php)$">
Order Allow,Deny
Deny from all
</FilesMatch>
但这阻止了我的网站功能。
我只是希望将此规则应用于缓存文件夹中,但我无法将.htaccess
文件放在里面,因为此文件夹会定期清除。
答案 0 :(得分:4)
尝试将此行添加到root .htaccess文件中:
RewriteRule ^cache/.*\.(htaccess|htpasswd|ini|phps?|fla|psd|log|sh|zip|exe|pl|jsp|asp|htm|sh|cgi|py)$ - [F]
该标志将显示403 Forbidden Error
答案 1 :(得分:3)
您所要做的就是将.htaccess
文件放在该特定缓存文件夹中。
.htaccess
个文件提供了一种基于每个目录进行配置更改的方法。
Apache HTTP Server Tutorial: .htaccess files
将该规则放在网站根目录的.htaccess
文件中,即可在整个网站上启用这些规则。
如果您希望从该缓存文件夹外部启用此规则,您可能需要在主.htaccess
文件中尝试此规则 -
RewriteEngine On
RewriteRule ^cache/.*\.(htaccess|htpasswd|ini|...)$ /access_denied.php
规则测试以查看所请求的文件是否为
cache/
如果满足这些条件,它会将该调用传递给access_denied.php
脚本,您可以在其中显示相应的错误消息。