0

我想要一个 htaccess 来保护文件不被直接访问。所以这是我的文件结构: 文件和文件夹

我已经使用以下方法保护了我的文件夹:

Options -Indexes

但有人仍然可以输入

www.domain.com/Folder/CSS/Styles.css

或者

www.domain.com/Folder/Insert.php

它会向他们展示一切。我究竟如何使用 htaccess 保护这些文件?我不希望任何人能够查看它们,但我希望网站能够正常运行。上次我试过

deny from all

而且整个网站无法加载,因为所有文件/文件夹都被完全锁定,甚至自己的网站也无法访问它的东西。我只是不希望人们在 url 中输入文件路径并查看它们。

4

1 回答 1

2

您想要什么是不可能的,因为网络浏览器需要能够获取文件。您可以在受保护的目录中尝试以下操作。只需知道使用 Firebug 或任何其他开发工具无需天才即可轻松查看这些请求的输出 - 欺骗标头也很容易做到......

SetEnvIfNoCase Referer "www.example.com" mysite

<Limit GET POST HEAD>
 Order Deny,Allow
 Deny from all
 Allow from env=mysite
</Limit>

如果您不熟悉语法,也可以将 mod_rewrite 用于相同目的,并带有 a [F]to forbid。(为可读性而写)

<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase /
 RewriteCond %{REQUEST_URI} ^/Folder/?(.*)$ [NC]
 RewriteCond %{HTTP_REFERER} !^http://www\.example\.com/ [NC]
 RewriteCond %{HTTP_REFERER} !^https://www\.example\.com/ [NC]
 RewriteRule ^.*$ - [F]
</IfModule>

请注意,如果您有一个 flash/silverlight/java 应用程序,那么在应用这样的解决方案之前,您需要确保它通过了正确的引荐来源请求标头。

于 2012-10-10T22:18:33.663 回答