【发布时间】:2017-06-21 23:15:57
【问题描述】:
我搜索了几乎所有想到的关键词,我知道有类似的问题,但这不是重复的,因为它们对我不起作用(不是我需要的确切设置或只是不起作用)。
我在我的 Windows 10 PC(Apache 和 mysql)上运行 XAMPP,尚未在文件中进行太多配置,但对正在发生的事情有一个大致的了解。
我想要的是位于 htdocs 文件夹(可查看的根目录)中 .htaccess 文件中的 allow/deny 块,或者更好的是,域重写块:
- 拒绝对位于可见根目录中的文件的所有直接访问尝试
豁免:
- 所有名为
index.php的文件都位于它们可能位于的任何(子)文件夹中 - 或者如果访问尝试来自服务器本身(大多数其他解决方案的问题是
.css|.js|.png和我的.php文件需要的其他文件将被阻止,甚至包含其他*.php文件将被阻止)
我尝试了很多解决方案,但都在我上面列出的几点上失败了! 如果有任何工作的人,我感谢您的帮助,如果没有,请告诉我。
-RmOL
【问题讨论】:
-
CSS、Javascript 和图像文件是从客户端而不是从服务器请求的。
-
所以根据定义,它们不能被保护以防止直接访问? + 如果我要通过 include 加载 CSS 和 JS ..(我知道它们是可见的)但它会阻止直接访问吗?
-
如果您愿意,您可以保护任何文件,但客户端无法加载它。如果您按字面意思包含它,那当然可以。
-
应该忘记保护 CSS 和 JS 文件的概念。您或任何拥有网站的人都无法阻止看到代码。客户端/浏览器必须阅读它才能显示页面。客户端代码对所有人开放,只需接受即可。即使您甚至不需要直接查看文件,浏览器也可以使用几乎每个浏览器中内置的浏览器开发工具向您显示代码。
-
现在拒绝除 index.php 之外的所有其他文件一点也不难。您可以这样做,以便服务器可以访问文件。
标签: php apache .htaccess mod-rewrite