如果远程用户知道文件的确切位置,他仍然可以从浏览器访问该文件。有谁可以找到私人文件的位置?好吧,这并不重要,但他可能会看到警告消息中显示的路径或文件,或者文件可能是可浏览的(目录索引中没有隐藏文件)。因此,如果您希望在任何情况下都不向远程用户提供“特殊文件”,那么您将不得不拒绝访问它们。但问题是如何?
在我的webroot文件夹中的.htaccess文件中:
<FilesMatch "\.(js|css)$">
Order deny,allow
Allow from all
</FilesMatch>
但这似乎不起作用.. :-(
我正在使用Apache 2.2
答案 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的东西都不会起作用。)