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 ...
随机推荐
- Java 面试宝典-2017
http://www.cnblogs.com/nelson-hu/p/7190163.html Java面试宝典-2017 Java面试宝典2017版 一. Java基础部分........... ...
- 自己动手写泛型dao
在经过一系列的问题得到解决之后,泛型dao终于写出来了.泛型dao相比于以前写的dao最大的好处就是,大大提高了代码的复用性,以往我们要对数据库中表中的数据进行操作的时候,每张表都需要写一个dao来操 ...
- Linux基础命令详解
1 遍历目录 cd:change dicrectory的缩写 .或者./代表当前目录,..或../代表上一级目录,cd -代表进入上一次的目录. 2 文件和目录列表 ls:list的缩写,会显示目录下 ...
- JAVAEE——BOS物流项目08:配置代理对象远程调用crm服务、查看定区中包含的分区、查看定区关联的客户
1 学习计划 1.定区关联客户 n 完善CRM服务中的客户查询方法 n 在BOS项目中配置代理对象远程调用crm服务 n 调整定区关联客户页面 n 实现定区关联客户 2.查看定区中包含的分区 n 页面 ...
- 神奇的RAC宏
先说说RAC中必须要知道的宏 RAC(TARGET, [KEYPATH, [NIL_VALUE]]) 使用: RAC(self.outputLabel, text) = self.inputTex ...
- mysql新手入门随笔2
17.创建表 CREATE TABLE tbname(columnname1 类型 约束条件, columnname2 类型 约束条件,-); 三大类型:数值型,时间日期型,字符串类型 六大约束条件: ...
- JVM内存管理概述与android内存泄露分析
一.内存划分 将内存划分为六大部分,分别是PC寄存器.JAVA虚拟机栈.JAVA堆.方法区.运行时常量池以及本地方法栈. 1.PC寄存器(线程独有):全称是程序计数寄存器,它记载着每一个线程当前运行的 ...
- Java注解(3)-注解处理器(编译期|RetentionPolicy.SOURCE)
注解的处理除了可以在运行时通过反射机制处理外,还可以在编译期进行处理.在编译期处理注解时,会处理到不再产生新的源文件为止,之后再对所有源文件进行编译. Java5中提供了apt工具来进行编译期的注解处 ...
- alpha-咸鱼冲刺day1-紫仪
总汇链接 一,合照 emmmmm.自然是没有的. 二,项目燃尽图 三,项目进展 登陆界面随意写了一下.(明天用来做测试的) 把学姐给我的模板改成了自家的个人主页界面,侧边栏啥的都弄出来了(快撒花花 ...
- ExecutorService,另一种服务,线程
http://heipark.iteye.com/blog/1393847 Executors.newFixedThreadPool和ArrayBlockingQueue一点使用心得 博客 ...