使用 Apache HTTPD 隐藏文件夹

使用 Apache HTTPD 隐藏文件夹

我正在使用 Apache HTTPD 服务器,我的根目录上有 3 个静态文件夹,分别是“css”、“js”和“images”。我该如何重写它,以便外界无法看到它?我知道它们是静态资源,应该被外界看到,但我进行了一些配置,将它们替换为我网站上的 CDN 网址。

所以我想要做的是向这些路径发出 404 请求。我目前有这样的代码:

 RewriteEngine On
 RewriteCond %{REQUEST_URI} ^/?(css|js|images)/
 RewriteRule ^/?(.*)$ - [G]

G 代表消失,我也试过 F 代表禁止。但我想要的只是 404。第二件事是,如果你输入 www.domain.com/css,它会重定向/解析到 www.domain.com/css/ 并显示消失消息。我只是不想让好奇的​​用户知道文件夹在那里。

谢谢。

答案1

为什么特别需要 404?实际上没有理由说 403 不起作用。

我想说的是,只需阻止它们而不需要重写(在位置块、目录块或 htaccess 中,任您选择)...

Order allow,deny
Deny from all

但如果你确实需要 404,而你又不能直接删除文件,那么我猜应该将路径重写为不存在的文件。但实际上,没有理由这样做,而且你的配置过于复杂。

RewriteCond %{REQUEST_URI} ^/(css|js|images)/
RewriteRule ^.*$ /nonexistentfile.html

答案2

使尾随斜杠成为可选的。

RewriteCond %{REQUEST_URI} ^/?(css|js|images)/?

相关内容