IIS进行URL重写
一、Why?
1、先来讲一讲为什么我们要使用url重写这个东西
2、因为我学习的后端是nodejs,然后我发现nodejs一个非常让人难受的事,就是它监听端口不是80和443时,你访问网页需要输入端口,这样很不友好,比如下面这样:

3、这样对用户很不友好,所以我才打算学一学url重写,url重写后就会变成这样:

4、当然上面的url中的3001也可以修改成其他字母或者多层路径,这样就会变得好看多了
二、前置条件
1、首先你得有个IIs服务器 ( ̄▽ ̄)/
2、先去IIS官网下载web平台安装工具
3、当然是安装这个工具了٩(๑❛ᴗ❛๑)۶
4、打开这个工具

5、搜索Application Request Routing Cache,或者 应用程序请求路由 ,因为有可能是英文也有可能是中午,所以当一个搜索不到时,搜索另一个语言,一定要在产品全部中搜索

6、安装后可以一路点击接受安装即可
7、接下来安装url重写工具,直接搜索url即可,,有可能出现 url 重写工具 或者 url rewrite
8、和上面安装请求路由一样,也可以和请求路由一起添加进去,一起安装
9、安装完成,我们前置工作也就成功了
三、应用程序请求路由设置
1、打开IIS工具,选择上面安装的请求路由

2、选择 Server Proxy Settings

3、在中间区域,选择勾选Enable proxy,不用修改内容,当然也可以根据需求自己修改

4、点击应用即可,完成请求路由的设置

四、url重写设置:这边讲解参数,后面有三个写好的例子使用
1、打开站点,选择需要url重写的站点

2、当安装完成url重写时,会出现url重写这个工具,选择工具,名字也有可能是英文

3、打开工具,选在右侧栏第一行添加规则,打开对话框,选择空白规则

4、输入名称,随意,但是尽量能表示出重写目标的含义

5、匹配url,请求的url(字面意思):与模式匹配(推荐),与模式不匹配;使用(匹配使用的方式):正则表达式(推荐),通配符,完全匹配;

6、模式:比如说host代表主机域名,则在这里面写的就是host之后的正则匹配表达式,比如匹配在host/blog/,之下的都转到nodejs搭建的服务上,则这里填写^blog/(.*);点击测试模式,我们填写下面图片内容进行测试,发现测试结果中有个{R:1},我们需要将其导向至nodejs搭建的服务,也就是重写目标

7、忽略大小写,自然就是字面意思,不多叙述
8、下面便是条件,按照图片来进行填写,这里不具体细数条件类型和规则模式填写,后面有三个例子进行了基本讲述,其余的请查看官方文档

9、服务器变量可以不写,操作类型可以因情况而定,http站点转向https时一般使用重定向,其余一般为重定向
重写URL:比如博客是在nodejs搭建的服务上,并且监听本地3001端口时,填写http://127.0.0.1:3001/{R:1},这个{R:1}就是上面模式匹配的字符串,其实访问www.example.com/blog/index.html,就是相当于访问http://127.0.0.1:3001/index.html,这样监听本地3001,不用开方公网3001,可以减少服务器危险
停止后续规则,自然就是字面意思,一旦勾选后,匹配处理结束,将不再处理下面的其他规则

10、点击右侧栏应用即可,当应用显示灰色时,证明有必填项没有填写,所以无法应用,到这里也就重写完毕,下面是例子
五、例子
1、http重定向至https
填写内容 ->
名称:随意
模式:(.*) ;代表全部,任意,无论是否字符都匹配
条件:{HTTPS};https,模式^OFF$,代表https关闭,也就是没有;;;{HTTP_HOST}:填写要匹配的域名,不能其他的域名访问到也重定向至这个https,逻辑分组全部匹配,任意匹配是满足一个条件即可进行下面处理
操作类型:重定向
重定向URL:https://www.example.com/{R:1}
结果相当于 访问 http://www.example.com/....... 重定向至 https://www.example.com/.......


2、重写服务,一般使用为nodejs服务,这里不写条件,一般条件使用为上面的两种,这里为了截图方便,不予展示
模式:^blog/(.*)
类型:重写
目标URL:http://127.0.0.1:3001/{R:1}
结果:访问:http://www.example.com/blog/index.html --> http://127.0.0.1:3001/inde.html
当然这个127.0.0.1指的是服务器的本地,而不是访问者电脑本地,这样使用,可以防止开发太多端口,引起安全问题

3、重写服务-文件
模式:(.*)phpf$:代表访问的文件以phpf结尾
类型:重写
目标URL:http://www.example.com/{R:1}.php
结果:访问:http://www.example.com/dir/loginphpf --> http://www.example.com/dir/login.php
这样当后端有其他语言或者不想在前端显示文件后缀时,可以使用这种方式来进行隐藏,phpf可以自己随意更改

六、尾记
1、本文记录目的只是为了防止遗忘
2、当然url重写不可能这么简单的使用,我只是需求多少,研究多少,这里只是基本使用,想要更复杂的,则自己可以去官方文档查看,研究
3、本博客可以随意转载,但是请在博文顶部写上来源:
作者:SpiritLing
地址:https://www.cnblogs.com/spirit-ling/p/8809039.html
IIS进行URL重写的更多相关文章
- thinkphp5 部署到iis服务器url重写
thinkphp部署到iis服务器配置url重写的解决方法: 1.下载 url rewrite.下载地址:https://www.iis.net/downloads/microsoft/url-rew ...
- IIS-详解IIS中URL重写工具的规则条件(Rule conditions)
出处:https://shiyousan.com/post/635654920639643421 本文结合官方文档和相关示例,详细记录了在IIS中URL重写工具下的规则条件(Rule conditio ...
- IIS配置Url重写实现http自动跳转https的重定向方法(100%解决)
引言 本文推荐阅读地址:https://www.52abp.com/BlogDetails/10008 这种文章网上可以说一搜一大把,但是我为什么还要写呢,因为一搜一把没把我气死,都是东抄西挪的东西, ...
- vue项目Windows Server服务器部署IIS设置Url重写
1.将vue项目使用npm run build命令打包后将dist文件夹内的文件全部拷贝到服务器. 2.IIS添加应用程序池,.NET CLR版本选择无托管代码 3.添加网站,应用程序池选择刚刚添加的 ...
- IIS设置URL重写,实现页面的跳转的重定向方法
默认IIS是不提供URL重写模块的. 请注意,不要将IIS默认的HTTP重定向理解为url重写. 安装url重写模块 url重写,是要从iis的应用市场下载url重写组件才可以的. URL重写工具的下 ...
- iis里URL重写重定向,http做301重定向https
上一篇文章写了iis和apache共用80端口,IIS代理转发apache. 因为第一次配置,这中间还是碰到了很多问题.这里记录下来,希望以后能避免错误. 使用Application Request ...
- IIS 配置 url 重写...
<?xml version="1.0"?> <configuration> <system.webServer> <rewrite> ...
- IIS URLReWrite URL 重写模块 下载地址
https://www.microsoft.com/zh-cn/download/details.aspx?id=7435
- IIS 无法安装URL重写模块的解决办法 UrlReWrite (.NET`SQL技术交流 群号206656202)
下载和安装URL Rewrite IIS8默认是没有安装URL重写工具的,必须要自己下载安装. 如果IIS上默认有安装Web平台安装程序,我们可以使用平台自动安装URL Rewrite重写工具,打开I ...
随机推荐
- ACCESS_ONCE
宏定义: #define ACCESS_ONCE(x) (*(volatile typeof(x) *)&(x)) 分解: typeof(x):取x的类型,如果x是int,那typeof(x) ...
- C++实现Date日期类
定义一个Date类,包含三个属性年.月.日 实现了如下功能: 年月日的增加.减少:2017年10月1日加上100个月30天是2025年5月31日 输出某天是星期几:2017年10月1日是星期日 判断某 ...
- Python中四种样式的99乘法表
1.常规型. #常规型 i=1 while i<=9: j=1 while j<=i: print(''%d*%d=%2d''%(i,j,i*j),end='') i+=1 #等号只是用来 ...
- linux --> Event Loop介绍
Event Loop介绍 想要理解Event Loop,就要从程序的运行模式讲起.运行以后的程序叫做"进程"(process),一般情况下,一个进程一次只能执行一个任务. 如果有很 ...
- 设计模式 --> (8)组合模式
组合模式 组合模式,是为了解决整体和部分的一致对待的问题而产生的,要求这个整体与部分有一致的操作或行为.部分和整体都继承与一个公共的抽象类,这样,外部使用它们时是一致的,不用管是整体还是部分,使用一个 ...
- BigDecimal 转成 double
NUMBER(20,2) 数据库里的字段number ,实体是BigDecimal 将BigDecimal转成double public double getOrderamount() { if ( ...
- Vue探索历程(一)
使用vue.js原文介绍:Vue.js是一个构建数据驱动的web界面库.Vue.js的目标是通过尽可能简单的API实现响应式数据绑定和组合的视图组件.vue.js上手非常简单,先看看几个例子: 例一: ...
- 初学MySQL基础知识笔记--01
本人初入博客园,第一次写博客,在今后的时间里会一点点的提高自己博客的水平,以及博客的排版等. 在今天,我学习了一下MySQL数据库的基本知识,相信关于MySQL的资料网上会有很多,所以我就不在这里复制 ...
- 20162330 第三周 蓝墨云班课 泛型类-Bag 练习
目录 题目及要求 思路分析 遇到的问题和解决过程 代码实现及托管链接 感想 参考资料 题目及要求 代码运行在命令行中,路径要体现学号信息,IDEA中,伪代码要体现个人学号信息: 参见Bag的UML图, ...
- 本地通知UILocalNotification
1.增加一个本地推送 //设置20秒之后 ]; //chuagjian一个本地推送 UILocalNotification *noti = [[[UILocalNotification alloc] ...