我使用 git 部署了一个 Drupal 网站(好吧,开发人员部署了它;我试图让他们远离麻烦),因此该网站在文档根目录中有一个目录.git
和一个文件。.gitignore
目前,如果在 Web 浏览器中访问这些文件,则文件的权限足以导致 nginx 返回 403 Forbidden 错误。
但是,我希望 nginx 完全否认该文件和目录的存在,如果有人尝试在浏览器中访问它们,则返回 404。
但等一下,还有更多!
我真的希望发生的是浏览器收到 Drupal 生成的 404 错误页面。在 Drupal 的admin/settings/error-reporting
页面中,我看到 404 错误被发送到http://www.example.com/404error
,一个 Drupal 节点,其中有一个互联网上最有趣的 404 页面。
我的 nginx 配置已包含一个@drupal
将请求传递给 Drupal 的块。因此我想将请求传递给 Drupal,但我不希望 Drupal 尝试提供现有的静态文件,而只是提供 404 页面。
location @drupal {
rewrite ^/(.+)$ /index.php?q=$1 last;
}
不幸的是,Google 在这方面没有提供太多帮助;大多数人似乎遇到了相反的问题。如何将对目录.git
或.gitignore
文件中的任何内容的请求发送到 Drupal 的 404 页面?