如何在.htaccess文件中限制/禁止访问特定文件类型,如.js .css?

时间:2011-04-09 12:40:03

标签: apache .htaccess permissions

如果远程用户知道文件的确切位置,他仍然可以从浏览器访问该文件。有谁可以找到私人文件的位置?好吧,这并不重要,但他可能会看到警告消息中显示的路径或文件,或者文件可能是可浏览的(目录索引中没有隐藏文件)。因此,如果您希望在任何情况下都不向远程用户提供“特殊文件”,那么您将不得不拒绝访问它们。但问题是如何?

在我的webroot文件夹中的.htaccess文件中:

<FilesMatch "\.(js|css)$">
Order deny,allow
Allow from all
</FilesMatch>

但这似乎不起作用.. :-(
我正在使用Apache 2.2

3 个答案:

答案 0 :(得分:4)

您的代码与找到的代码here非常不同。怎么样尝试:

<Files ~ "(.js|.css)">
Order allow,deny
Deny from all
</Files>

答案 1 :(得分:1)

在apache2.conf中更新FilesMatch将使其成为全局更改,而无需单独将其添加到所有站点/虚拟目录。

作为旁注,我建议将任何文件添加到排除列表中,这些文件可能包含.xml .ini .conf等配置设置...这不会阻止www-data用户,它只是保留外部请求来自服务和显示的文件。

(Ubuntu 14.04 Apache2)

ORIGINAL:

    <FilesMatch "^\.ht">
            Require all denied
    </FilesMatch>

NEW:

    <FilesMatch "^\.ht|.js|.css">
            Require all denied
    </FilesMatch>

答案 2 :(得分:1)

您尝试做什么无效

需要允许不受限制地访问.css和.js文件。如果用户的浏览器无法请求样式表或使页面打勾的javascript,则该页面将不适用于它们。 (它会加载;但它看起来很糟糕,因为样式表的请求被拒绝了,任何依赖JavaScript的东西都不会起作用。)