我有一个站点,我想禁用该文件夹的文件执行的某些扩展名。
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
文件放入其中,因为此文件夹会定期清除。
尝试将此行添加到根 .htaccess 文件中:
RewriteRule ^cache/.*.(htaccess|htpasswd|ini|phps?|fla|psd|log|sh|zip|exe|pl|jsp|asp|htm|sh|cgi|py)$ - [F]
该标志将导致显示 403 禁止错误
您所要做的就是将该.htaccess
文件放在该特定的缓存文件夹中。
.htaccess
文件提供了一种基于每个目录进行配置更改的方法。
Apache HTTP 服务器教程:.htaccess 文件
将该规则放在网站根目录的.htaccess
文件中将在整个网站上启用这些规则。
如果您希望从该缓存文件夹外部启用此规则,则可能需要在主.htaccess
文件中尝试此规则 -
RewriteEngine On
RewriteRule ^cache/.*.(htaccess|htpasswd|ini|...)$ /access_denied.php
该规则将测试所请求的文件是否
- 网址以
cache/
开头 - 包含列出的任何文件扩展名(用竖线字符分隔)
如果都满足这些条件,它将该调用传递给 access_denied.php
脚本,您可以在其中显示相应的错误消息。