Vue路由重写# 与 Web服务器路由重写双配置实现路由重写

前言
vue路由组件我使用的vue-router
web服务器使用nginx

Vue-router配置
vue-router 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载
http://localhost:8080/#/HelloWorld
如果不想要很丑的 hash,可以用路由的 history 模式,这种模式充分利用 history.pushState API 来完成 URL 跳转而无须重新加载页面

const router =new Router({
mode: ‘history‘,
routes: [...]
})
1
2
3
4
不过这种模式需要后台配置支持。如果后台没有正确的配置,当用户在浏览器直接访问就会返回 404

Web服务器配置
如果要使用history模式,则需要进行服务器配置
所以,要在服务端增加一个覆盖所有情况的候选资源:如果 URL 匹配不到任何静态资源,则应该返回同一个 index.html 页面,这个页面就是app 依赖的页面
下面分别介绍Nginx和Apache下的重写配置

Nginx配置
location / {
try_files $uri $uri/ /index.html;
}
1
2
3
Apache配置
首先,去掉rewrite_module前面的#号注释
LoadModule rewrite_module modules/mod_rewrite.so
然后,将文档所有的AllowOverride设置为all
AllowOverride all
最后,需要保存一个.htaccess文件放置在根路径下面,文件内容如下

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>
1
2
3
4
5
6
7
8
小结
这么做以后,服务器就不再返回404错误页面,因为对于所有路径都会返回 index.html 文件。为了避免这种情况,应该在Vue应用里面覆盖所有的路由情况,访问错误路由即跳转指定路由,这里一般是自动跳转首页或者跳转404错误页
const router = new VueRouter({
mode: ‘history’,
routes: [
{ path: ‘*’, redirect: ‘/’,}
]
})

原文地址:https://www.cnblogs.com/dgmoba/p/12609123.html

时间: 2024-08-26 06:36:13

Vue路由重写# 与 Web服务器路由重写双配置实现路由重写的相关文章

WEB服务器3--IIS安装和配置

安装Web服务器(IIS) 在"服务器管理器"-"角色"-"添加角色"-选择"Web服务器(IIS)"进行安装 IIS 7.5被分割成了40多个不同功能的模块,管理员可以根据需要定制安装相应的功能模块, 这样可以使Web网站的受攻击面减少,安全性和性能大大提高.所以,在“选择角色服务”的步骤中我们采用默认设置,只安装最基本的功能模块. 安装完成后,可以通过[管理工具]中的[Internet信息服务(IIS)管理器]来管理IIS

网络操作系统 第十一章 Web 服务器的按照与配置

习题 1.如何在WindowsServer 2008 系统中使用IIS进行多站点配置与管理? 1)运行"开始"–"程序"–"管理工具"–"服务器管理器"打开: 选择"WEB服务器(IIS)",注意:首次安装IIS的时候,当你点击"下一步"的时候会提示"是否添加WEB服务器所需的功能"对话框. 提示在安装IIS时,必须同时安装"Windows进程激活服务&qu

(一) IIS Web服务器的安装与配置

1.进入控制面板,选择大图标显示,选择“程序与功能”: 2.进入“程序和功能”,选择“启用和关闭Windows功能”: 3.点击“启用或关闭Windows功能”,进入Windows功能界面,找到Internet Information Services,设置相关项如下: 4.点击确定,等待安装完成: 5.安装完成后,重新打开控制面板,找到“管理工具”: 6.进入“管理工具”,找到“Internet Information Services (IIS)管理器”: 7.双击“Internet Inf

flask之web网关、三件套、配置、路由(参数、转化器及自定义转化器)、cbv、模板语言、session

1.wsgiref.py from wsgiref.simple_server import make_server def mya(environ, start_response): print(environ) print(start_response) start_response('200 OK', [('Content-Type', 'text/html')]) if environ.get('PATH_INFO') == '/index': with open(r'index.htm

MyEclipse中web服务器的三种配置方式

初学Javaweb开发的人们都会遇到一个问题,就是服务器环境的搭建配置问题.下面介绍三种服务器的搭建方式. 直接修改server.xml文件 当你写了一个web应用程序(jsp/servlet),想通过浏览器直接去访问这个页面,需要在Tomcat中配置相关路径: 找到Tomcat下conf目录,你会看到有个server.xml,即服务器配置文件.用文本编译器打开,拉到Host标签,在它结束前加上我们的应用程序路径: <Context path="/HelloWeb" docBas

vrrp ,网关冗余,浮动路由,pat地址转化,web服务器映射

实验名称:vrry ,网关冗余,浮动路由,pat地址转化,web服务器映射 实验拓扑图: 3.实验目的:1 .使内网可以访问web服务器 -server4 2. 配置vrrp使网关冗余备份,并且链路追踪 ,并且配置浮动静态路由 3 映射内网web服务器,使外网client5可以访问 4.                    ip地址规划 :  内网 :  vlan 1 0  : 192.168.10.1           192.168.10.2 vlan 10的网关: 192.168.10

(转)推荐一个在Linux/Unix上架设ASP.NET的 WEB服务器--Jexus

在Linux/Unix上架设ASP.NET WEB服务器,有两个可选方式,一种是Mono+XSP,一种是Mono+Jexus,其它的方式,比如 Apache+mod_mono.Nginx+FastCgi 等等,其实质与XSP并无区别,都是使用Mono所提供的ASP.NET处理模块:Mono.WebServer名字空间实现对ASP.NET网站的支 持.Jexus不但具有跨平台ASP.NET服务器这样的标志性特征,同时还拥有内核级的安全监控.入侵检测.URL重写.无文件路由等一系列重要功能和 专有特

Web服务器宕机诊断方法

如果你正面临Web服务器宕机的问题,下面几招可以帮你解决燃眉之急并避免再次出现此类事故. 过去20年里,网络已成为文明的重要部分.从社会需求层次看,网络需求排名仅低于饮用水与可靠电力供应,网络为人类社会提供了更多的生产力,个人娱乐以及整体生活质量改善在过去半个世纪的发展,是以往任何时期都无法比拟的. 通过访问网站满足需求已经被许多现代用户接受:可以通过Web进行学术研究.个人致富和订披萨,用户可以在舒适的家里完成这一切操作.为了竞争,最有信誉的企业也投身到世界级网站建设中,一般说来,就是深入We

搭建web服务器环境

搭建web服务器的环境(配置PHP的工作环境): 首先要配置php,在Apache的配置文件夹中httpd.conf中配置 1把php配置成Apache的一个功能模块 LoadModule php5_module "F:\class22\amp\php\php5apache2_2.dll" 2.指定.php 后缀的文件交给PHP的功能模块处理 AddType apalication/x-httpd-php .php 3.确定PHP的配置文件php.ini的路径 PHPIniDir &q