我的网站通过包含“页面”目录 (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 文件包含有关我的文件结构的信息,我不想向黑客泄露这些信息。所以,我不希望这些公开。
无论如何......我的问题是:如果最后两个使它们仅在请求来自客户端时适用,我可以放在前面吗
?
IERewriteCond
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]
PS如果可能的话,我宁愿不这样做,deny from all
因为我在共享主机上,他们可能不喜欢那样做。