对于不希望被外部访问的敏感文件一般采用哪种措施

对于不希望被外部访问的敏感文件一般采用哪种措施
https://learnku.com/composer.json
例如这个链接,composer.json文件应该是存在的,但是访问却返回laravel的404页面,这个应该是怎么实现的,如果是Nginx拦截的不是应该返回403吗?:

对于不希望被外部访问的敏感文件一般采用哪种措施

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 6

不存在当前文件的话,可以在nginx配置重定向页面

error_page   500 502 503 504  /50x.html;
location = /50x.html {
            root   html;
}

不想被访问的文件也可以通过匹配文件名来重定向

4年前 评论

入口文件在 public 目录,但是 composer.json 不是在项目根目录下么!这么访问肯定是 404 啊。

4年前 评论
h-o-o (楼主) 4年前
白俊遥 4年前

前提错了;

├── app
├── bootstrap
├── config
├── database
├── package.json *
├── public *
│   ├── css
│   └── js
├── resources
├── routes
├── storage
└── tests

假设项目目录是 /example.com/
composer.json 文件是在 /example.com/ 目录下;
在配置 NGINX 或者 Apache 的时候需要把目录指向到 /example.com/public

server {
    #...
    root /example.com/public;
    #...
}

这个可以参考文档: 部署《Laravel 6 中文文档》
/example.com/public 下本来就没 package.json 文件 ; 404 属于正常反应;

4年前 评论
h-o-o (楼主) 4年前

再补充一下 @白俊遥 的回答,即便 composer.json 在项目根目录,部署之前也应当清理掉几类文件:

  • 代码管理相关的(/.git*...)
  • 依赖管理相关的(/composer.json, composer.lock...)
  • 运行时产生的(/storage/app...)
  • 由运行环境决定的(/.env...)
  • 非代码或非运行时所需的(/README.md, _ide_helper.php...)
  • 测试相关的(/tests...)
4年前 评论
h-o-o (楼主) 4年前
Wi1dcard (作者) 4年前
xianyunyehe

那个文件基本上不会上到正式环境的。因为生产中那个composer.json 对程序没影响,只有在开发中才有用
.git 目录肯定也不会的。都是通过CI/CD 去打包构建,上传。

4年前 评论
xxxie

坐等大佬

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!