0

我有一个站点,我想仅为该文件夹禁用某些文件执行扩展。

例如: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文件放入其中,因为此文件夹会定期清除。

4

2 回答 2

4

尝试将此行添加到您的根 .htaccess 文件中:

RewriteRule ^cache/.*\.(htaccess|htpasswd|ini|phps?|fla|psd|log|sh|zip|exe|pl|jsp|asp|htm|sh|cgi|py)$ - [F]

该标志将导致显示 403 禁止错误

于 2012-08-14T10:31:34.293 回答
3

您所要做的就是将该.htaccess文件放在该特定缓存文件夹中。

.htaccess文件提供了一种基于每个目录进行配置更改的方法。

Apache HTTP 服务器教程:.htaccess 文件

将该规则放在.htaccess您网站根目录的文件中,将在您的整个网站上启用这些规则。


如果您希望从该缓存文件夹外部启用此规则,您可能需要在主.htaccess文件中尝试此规则 -

RewriteEngine On
RewriteRule ^cache/.*\.(htaccess|htpasswd|ini|...)$ /access_denied.php

该规则测试以查看请求的文件是否

  • 网址以cache/
  • 包含列出的任何文件扩展名(用竖线字符分隔)

如果这些条件都满足,它会将调用传递给access_denied.php脚本,您可以在其中显示适当的错误消息。

于 2012-08-14T10:09:49.980 回答