(最简单详细)关于nginx配置解决页面刷新以后404 Not Found和403 Forbidden

简介: (最简单详细)关于nginx配置解决页面刷新以后404 Not Found和403 Forbidden

仔细看我下面所说,每一步都是坑


1.页面刷新404 Not Found


(1)问题原因

web单页面开发模式,只有一个index.html入口,其他路径是前端路由去跳转的,nginx没有对应这个路径,所以就会报404了


(2)解决方法

增加try_files $uri $uri/ /index.html配置;意思就是如果第一个存在,直接返回;不存在的话读取第二个index.html

location / {
            try_files $uri $uri/ /index.html;
        }

2.页面刷新以后403 Forbidden

image.png

image.png

(1)问题原因

情况1.vue-router里面的导航守卫beforeEach和afterEach这里面设置了跳转


情况2.页面刷新会报错误


原因:这里的路由跳转相当于从新请求了一下nginx代理的路由,但是nginx没有所以失败


(2)解决方法(我用的下面代码中的例子1解决的)

在nginx里面配置路由地址重写(重定向)rewrite

例1:访问www.a.com/a.html------->www.a.com/b.html
  vim /usr/local/nginx/conf/nginx.conf
  server {
        listen       80;  #端口
        server_name  www.a.com;   #虚拟主机
        rewrite /a.html   /b.html;    #www.a.com/a.html   www.a.com/b.html
        location / {
            root   html;    # documentRoot
            index  index.html index.htm;  # 默认是index.html页面
        } 
     }
     还需要配置域名www.a.com,可以通过配置dns或者修改/etc/hosts
  例2:访问192.168.4.20------->www.baidu.com
  vim /usr/local/nginx/conf/nginx.conf
  server {
        listen       80;  #端口
        server_name  localhost;   #虚拟主机
        rewrite ^/  http://www.baidu.com;   #其中^代表正则表达式,^/表示所有路径
        location / {
            root   html;    # documentRoot
            index  index.html index.htm;  # 默认是index.html页面
        } 
     }
  例3:访问192.168.4.20/xxxxx------->www.baidu.com/xxxxx
  vim /usr/local/nginx/conf/nginx.conf
  server {
        listen       80;  #端口
        server_name  localhost;   #虚拟主机
        rewrite ^/(.*)  http://www.baidu.com/$1;  #其中^代表正则表达式,^/(.*)表示提取所有路径,然后通过$1使用匹配到的路径
        location / {
            root   html;    # documentRoot
            index  index.html index.htm;  # 默认是index.html页面
        } 
     }
  例4:实现不同的浏览器访问192.168.4.20/test.html返回不同的页面
  这里咱们使用curl浏览器和firefox浏览器。curl是一款没有图形的浏览器,只可以显示代码信息。


这个403问题改了好久


尝试过挣扎的方法


1.试图阻止页面刷新                                                             失败


2.试图阻止路由重定向                                                         失败


3.试图前端修改url路径然后跳转到可以使用的链接的情况   失败

目录
相关文章
|
28天前
|
缓存 应用服务中间件 网络安全
Nginx中配置HTTP2协议的方法
Nginx中配置HTTP2协议的方法
68 7
|
2月前
|
应用服务中间件 BI nginx
Nginx的location配置详解
【10月更文挑战第16天】Nginx的location配置详解
|
2月前
|
缓存 负载均衡 安全
Nginx常用基本配置总结:从入门到实战的全方位指南
Nginx常用基本配置总结:从入门到实战的全方位指南
316 0
|
2月前
|
应用服务中间件 Linux nginx
Jetson 环境安装(四):jetson nano配置ffmpeg和nginx(亲测)之编译错误汇总
这篇文章是关于在Jetson Nano上配置FFmpeg和Nginx时遇到的编译错误及其解决方案的汇总。
100 4
|
24天前
|
缓存 负载均衡 算法
如何配置Nginx反向代理以实现负载均衡?
如何配置Nginx反向代理以实现负载均衡?
|
29天前
|
存储 负载均衡 中间件
Nginx反向代理配置详解,图文全面总结,建议收藏
Nginx 是大型架构必备中间件,也是大厂喜欢考察的内容,必知必会。本篇全面详解 Nginx 反向代理及配置,建议收藏。
Nginx反向代理配置详解,图文全面总结,建议收藏
|
16天前
|
负载均衡 前端开发 应用服务中间件
负载均衡指南:Nginx与HAProxy的配置与优化
负载均衡指南:Nginx与HAProxy的配置与优化
39 3
|
1月前
|
应用服务中间件 API nginx
nginx配置反向代理404问题
【10月更文挑战第18天】本文介绍了使用Nginx进行反向代理的配置方法,解决了404错误、跨域问题和302重定向问题。关键配置包括代理路径、请求头设置、跨域头添加以及端口转发设置。通过调整`proxy_set_header`和添加必要的HTTP头,实现了稳定的服务代理和跨域访问。
226 1
nginx配置反向代理404问题
|
24天前
|
负载均衡 监控 应用服务中间件
配置Nginx反向代理时如何指定后端服务器的权重?
配置Nginx反向代理时如何指定后端服务器的权重?
41 4
|
24天前
|
安全 应用服务中间件 网络安全
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
48 3