Linux Nginx配置自定义访问路径后报错403 is forbidden

本文仅提供一种错误可能,不代表全部

本来配置完nginx后到浏览器能正常访问到主页,直到配置了自定义访问路径后,突然就报 403 is forbidden 了,本来以为是路径原因,仔细检查后发现并没有问题,千算万算也没算到是因为没有读取权限导致

由于index.html不是在服务器上创建的,而是从本地上传的,上传完后查看只有当前用户有一个r权限,而我的nginx配置了专用的启动用户nginx,这个用户权限比较低,只要给other用户一个r权限就可以正常访问自定义路径的文件了,方便起见我直接给 user(rwx)group(rw)other(rw) 都给一下权限

# chmod 755 index.html

在这里插入图片描述

Linux就很怪,当前用户创建的文件还需要手动赋予x执行权限,而新文件上传到服务器只有权限-r--------,所以上传新文件时一定一定一定要注意权限问题,太鸡贼了
可以使用Spring Boot提供的ErrorController来实现将常见错误重定向到统一的静态页面,具体步骤如下: 1. 创建一个Controller类,实现ErrorController接口,并在类上加上@Controller注解。 2. 在类中实现getErrorPath()方法,返回一个固定的错误路径(比如/error)。 3. 在类中实现一个方法,用于处理错误请求,并在方法中做重定向到统一的静态页面。 示例代码如下: ```java @Controller public class MyErrorController implements ErrorController { @Override public String getErrorPath() { return "/error"; } @RequestMapping("/error") public String handleError(HttpServletRequest request) { Object status = request.getAttribute(RequestDispatcher.ERROR_STATUS_CODE); if (status != null) { Integer statusCode = Integer.valueOf(status.toString()); if (statusCode == HttpStatus.NOT_FOUND.value()) { return "redirect:/404.html"; } else if (statusCode == HttpStatus.FORBIDDEN.value()) { return "redirect:/403.html"; } else if (statusCode == HttpStatus.INTERNAL_SERVER_ERROR.value()) { return "redirect:/500.html"; } else if (statusCode == HttpStatus.BAD_REQUEST.value()) { return "redirect:/400.html"; } } return "redirect:/error.html"; } } ``` 上述代码中,当请求出现错误时,会通过getErrorPath()方法返回的路径进入到handleError()方法中进行处理。在handleError()方法中,根据不同的错误类型进行重定向到对应的静态页面。如果错误类型未知,则重定向到统一的错误页面。 注意:需要在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> ``` 因为重定向到静态页面需要使用Thymeleaf模板引擎解析页面,需要添加该依赖才能正常解析页面。如果不需要使用Thymeleaf,可以将该依赖注释掉或者删除。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柯基爱蹦跶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值