我有Gruntfile.js和package.json以及文件夹node_modules和.git。 我想阻止访问这些文件和文件夹。在应用程序中,我将index.php作为每个非文件/文件夹请求的大门
这是我的.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)$ index.php?page=$1
并在index.php中
if (isset($_GET['page'] && !file_exists($views.$_GET['page'])) {
header($_SERVER['SERVER_PROTOCOL'].' 404 Not Found', true, 404);
include $views.'404.php';
}
因此,如果这些私人文件在相应的视图中显示为404,那就更好了
答案 0 :(得分:-1)
我的解决方案是使用一个简单的RewriteRule从index.php重定向到每个私有文件和文件夹的404视图
RewriteEngine On
RewriteRule ^Gruntfile\.js$ index.php?page=404 [L]
RewriteRule ^package\.json$ index.php?page=404 [L]
RewriteRule ^.git/.*$ index.php?page=404 [L]
RewriteRule ^node_modules/.*$ index.php?page=404 [L]
虽然我认为这些文件需要位于根文件夹中,并且index.php位于像public_html
这样的子文件夹中,这是唯一的公共文件
此解决方案甚至适用于大写和混合字母。即:
pacKagE.json
gruntfile.js
.GIT/