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

2023-11-19

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

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

(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路径然后跳转到可以使用的链接的情况   失败


感觉这个文章好的话,给个赞,顺便评论666 栓Q了

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • R语言基础备忘-plot()详解

    plot是R中的基本画图工具 直接plot x x为一个数据集 就能画出图 soeasy 但是细节往往制胜的关键 所以就详细来看下plot的所有可设置参数及参数设置方法 下面讲到的图形参数 是graphic包中的常见参数 graphic不同
  • 统计建模与r软件课后习题五 5.1~5.11题

    第五章 假设检验 问题导向 由正常男子血小板计数均值这句话 容易判断属于对均值进行检验的问题 H0 与正常男子无差异等于225 H1 与正常男子有差异 不等于225 x c 220 188 162 230 145 160 238 188 2
  • QT多线程同步之QWaitcondition

    使用到多线程 无可避免的会遇到同步问题 qt提供几种同步线程的方法 在这里讲一下QWaitcondition的简单使用 一 QWaitcondition 是通过一个线程达到某种条件来唤起另一个线程来实现同步的 mutex lock wait
  • 基于Python的房地产分析平台的设计与实现-爬虫-可视化大屏安装数据分析与可视化计算机毕业设计

    更多项目资源 最下方联系我们 目录 一 项目技术介绍 二 项目配套文档 部分内容 资料获取 一 项目技术介绍 该项目含有源码 文档 PPT 配套开发软件 软件安装教程 项目发布教程 包运行成功以及课程答疑与微信售后交流群 送查重系统不限次数
  • 关于统计变换(CT/MCT/RMCT)算法的学习和实现,也称为局部二进制模式(LBP)

    原文地址 http blog sina com cn s blog 684c8d630100turx html
  • 零基础入门 HTML 的 8 分钟极简教程

    在今天 前端工程师已经成为研发体系中的重要岗位之一 可是与此相对的是 极少大学的计算机专业愿意开设前端课 大部分前端工程师的知识 也都是在实践和工作中不断学习的 最近收到很多同学的后台留言 说希望多推出一些前端方向的教程 今天我们就带来一个
  • Raspberry Pi 3安装配置Raspbian过程

    1 前期准备 硬件 Raspberry Pi 3主板 5V 1A安卓充电器及数据线 Samsung 64GB UHS 1 Class10 TF存储卡 TF卡读卡器 网线 HDMI高清线 可无 支持HDMI输入的显示器 可无 软件 Win32
  • jar包与war包部署的区别及jar包部署的一个路径访问问题

    1 jar包与war包部署的区别 什么是jar包 jar包是类的归档文件 jar文件格式以流行的ZIP文件格式作为基础 和ZIP文件不一样的是 JAR文件不仅仅用来进行压缩和发布 还用来部署和封装库 组件以及插件程序 并且 还能够被像编译器
  • 《Centos7——logstash启动报错》

    logstash启动报错 root localhost systemctl start logstash Failed to start logstash service Unit not found 解决方法 root localhost
  • python入门指南

    python入门指南 python是一门简单易学且功能强大的编程语言 它拥有高效的高级数据结构 并且能够简单而又高效的方式进行面向对象编程 python是一门解释性语言 因为无需编译和链接 在开发中节省时间 使用python解释器 调用py
  • docker容器无法启动, no space left on device

    背景 通过jekens 部署服务 发现部署失败 后通过手动拉取镜像发现直接报错 报错大致意思就是没有剩余可用空间 复现路径 如下操作 启动容器docker start 3ad663158cf6 报错 Error response from
  • Free C, C++ Compilers(免费的C/C++编译器)

    以下内容来源于 http www programmerworld net resources c compiler htm 1 Free Microsoft eMbedded Visual C Microsoft eMbedded Visu
  • 一分钟搞定微信小程序定位(wx.getLocation)功能

    欢迎大家来到我的一分钟系列 跟大家安利一分钟系列主要让大家快速完成一个功能少踩不必要的坑 先完成功能再悟其中的原理 这期主要为大家提供微信小程序的定位功能 换不多说 直接上干货 首先微信官方提供的wx getLocation 应用之后发现这
  • python采集keep运动数据

    我国2009年确立 全民健身日 2012年 广泛开展全民健身运动 写入十八大报告 到2014年上升为国家战略 全民健身的分量越来越重 推动全民健身和全民健康深度融合 通过全民健身实现全民健康 全民健身运动在我国越来越普及 每天清晨和傍晚时分
  • Umi+Dva初印象<基础应用,结构,流转逻辑>

    目录 前言 知识储备 generator函数 Dva初识 实际交互 函数式组件 class组件 前言 项目初始为umi脚手架进行初始化 lt 初始化过程 http t csdn cn cuTaY gt 工程中加载了umi自带的antd ui
  • 记一次开源PR

    提示 不要懒得看英文文档 要认真看别人的贡献文档 否则会浪费更多的时间 开源PR一般流程 1 远程仓库fork 2 你得发现bug或有优化修改 提交到fork的仓库 3 提issue 沟通 4 提PR 5 机器审核 修改问题 6 等待人工审
  • 【微信支付】分享一个失败的项目

    这个项目是去年做的 开始客户还在推广 几个月后发现服务器已经关掉了 这是一个发图片猜谜语的应用 用户猜对了分红包 所得奖金可以提现 开发的时候对需求都不太看好 觉得用户粘性太低了 今天就把所有的程序拿了出来 供有兴趣的伙伴玩耍 用户从公众号
  • C++Primer第三章习题

    3 2 编写一段程序从标准输入中一次读入一整行 然后修改该程序使其一次读入一个词 include
  • UITableViewCell 设置单元格选中后只显示一个打勾的状态

    UITableViewCell 设置单元格选中后只显示一个打勾的状态 2013 06 28 22 28 33 转载 标签 ios tableviewcell it 分类 iOS 今天做个表格 突然发现在选中某行时打勾 再次选中其它行时 上次
  • (最简单详细)关于nginx配置解决页面刷新以后404 Not Found和403 Forbidden

    仔细看我下面所说 每一步都是坑 1 页面刷新404 Not Found 1 问题原因 web单页面开发模式 只有一个index html入口 其他路径是前端路由去跳转的 nginx没有对应这个路径 所以就会报404了 2 解决方法 增加tr