我的网站通过包含'pages'目录(PHP)中的页面来工作,我想禁止访问该目录中的文件。但是,当我在其中放置一个.htaccess文件时说:deny from all
,它禁止访问所有文件的文件,而不仅仅是请求包含文件或使用样式表。
我还尝试将用户带到另一个页面,当他们尝试查看这些文件时:
RewriteCond %{THE_REQUEST} \.php[\ /?].*HTTP/
RewriteRule ^.*$ index.php?path=1 [QSA]
RewriteCond %{THE_REQUEST} \.css[\ /?].*HTTP/
RewriteRule ^.*$ index.php?path=1 [QSA]
RewriteCond %{THE_REQUEST} \.js[\ /?].*HTTP/
RewriteRule ^.*$ index.php?path=1 [QSA]
这样可行,它只是不会加载样式表/ js。它确实包含PHP文件但没有查看,这很好,所以我保持这三个中的第三个很好。但我的css文件包含有关我的文件结构的信息,我宁愿不透露给黑客。因此,我不希望这些内容公开。
无论如何......我的问题是:
是否有 RewriteCond
,如果请求来自客户端的最后两个只能应用,我可以放在前面吗?
即。
RewriteCond %{THE_REQUEST} IS_COMING_FROM_A_CLIENT_OR_BROWSER
RewriteCond %{THE_REQUEST} \.css[\ /?].*HTTP/
RewriteRule ^.*$ index.php?path=1 [QSA]
RewriteCond %{THE_REQUEST} IS_COMING_FROM_A_CLIENT_OR_BROWSER
RewriteCond %{THE_REQUEST} \.js[\ /?].*HTTP/
RewriteRule ^.*$ index.php?path=1 [QSA]
P.S。我宁愿不通过deny from all
这样做,如果可能的话,因为我在共享主机上,他们可能不喜欢这样。
答案 0 :(得分:0)
检查HTTP_REFERER是否是.php页面以外的其他内容适用于.js和.css文件包含?