一、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重写的更多相关文章

  1. thinkphp5 部署到iis服务器url重写

    thinkphp部署到iis服务器配置url重写的解决方法: 1.下载 url rewrite.下载地址:https://www.iis.net/downloads/microsoft/url-rew ...

  2. IIS-详解IIS中URL重写工具的规则条件(Rule conditions)

    出处:https://shiyousan.com/post/635654920639643421 本文结合官方文档和相关示例,详细记录了在IIS中URL重写工具下的规则条件(Rule conditio ...

  3. IIS配置Url重写实现http自动跳转https的重定向方法(100%解决)

    引言 本文推荐阅读地址:https://www.52abp.com/BlogDetails/10008 这种文章网上可以说一搜一大把,但是我为什么还要写呢,因为一搜一把没把我气死,都是东抄西挪的东西, ...

  4. vue项目Windows Server服务器部署IIS设置Url重写

    1.将vue项目使用npm run build命令打包后将dist文件夹内的文件全部拷贝到服务器. 2.IIS添加应用程序池,.NET CLR版本选择无托管代码 3.添加网站,应用程序池选择刚刚添加的 ...

  5. IIS设置URL重写,实现页面的跳转的重定向方法

    默认IIS是不提供URL重写模块的. 请注意,不要将IIS默认的HTTP重定向理解为url重写. 安装url重写模块 url重写,是要从iis的应用市场下载url重写组件才可以的. URL重写工具的下 ...

  6. iis里URL重写重定向,http做301重定向https

    上一篇文章写了iis和apache共用80端口,IIS代理转发apache. 因为第一次配置,这中间还是碰到了很多问题.这里记录下来,希望以后能避免错误. 使用Application Request ...

  7. IIS 配置 url 重写...

    <?xml version="1.0"?> <configuration> <system.webServer> <rewrite> ...

  8. IIS URLReWrite URL 重写模块 下载地址

    https://www.microsoft.com/zh-cn/download/details.aspx?id=7435

  9. IIS 无法安装URL重写模块的解决办法 UrlReWrite (.NET`SQL技术交流 群号206656202)

    下载和安装URL Rewrite IIS8默认是没有安装URL重写工具的,必须要自己下载安装. 如果IIS上默认有安装Web平台安装程序,我们可以使用平台自动安装URL Rewrite重写工具,打开I ...

随机推荐

  1. generator生成器iterator遍历器和yield

    generator方法()返回一个iterator 使用generator时永远先去调用generator()方法 for of对iterator的调用过程(babel参照) 1,_iterator. ...

  2. 2.java.util.logging.Logger使用详解

    一.java.util.logging.Logger简介 java.util.logging.Logger不是什么新鲜东西了,1.4就有了,可是因为log4j的存在,这个logger一直沉默着, 其实 ...

  3. [译文] SQL JOIN,你想知道的应该都有

    介绍 这是一篇阐述SQL JOINs的文章. 背景 我是个不喜欢抽象的人,一图胜千言.我在网上查找了所有的关于SQL JOIN的解释,但是没有找到一篇能用图像形象描述的. 有些是有图片的但是他们没有覆 ...

  4. 【Python】 xml转json

    虽然python有解析xml的模块,也有生成json的模块,但是没有把这两者连接起来的模块. 下面是以来自MIT的大神Martin Blech写的一个方便的模块,供大家参考.也别忘了在用之前先拜谢作者 ...

  5. MySQL使用和操作总结

    简介 MySQL是一种DBMS,即它是一种数据库软件.DBMS可分为两类:一类是基于共享文件系统的DBMS,另一类是基于客户机——服务器的DBMS.前者用于桌面用途,通常不用于高端或更关键应用. My ...

  6. Hibernate学习笔记三 多表

    一对多|多对一 表中的表达 实体中的表达 实体代码: package com.yyb.domain; import java.util.HashSet; import java.util.Set; p ...

  7. C语言程序设计(基础)- 第4周作业

    一.PTA作业 完成PTA第四周作业中8个题目,并将其中4个题目的思路列在博客中. 1.7-1 计算分段函数[1] 2.7-2 A除以B 3.7-6 阶梯电价 4.7-7 出租车计价 随笔具体书写内容 ...

  8. c语言-第零次作业

    1.你认为大学的学习生活.同学关系.师生应该是怎样?请一个个展开描述. 我很荣幸能考进集美大学.集美大学历史悠久.师资力量雄厚.教师与学生素质高.并且集美大学的学习生活和我理想中的一样!首先老师认真负 ...

  9. 201621123040《Java程序设计》第十周学习总结

    1.本周学习总结 2.书面作业 2.1常用异常 2.1.1自己以前编写的代码中经常出现什么异常.需要捕获吗(为什么)?应如何避免? 算术异常ArithmeticException(除数为0的情况) 类 ...

  10. Django SNS 微博项目开发

    1.功能需求 一个人可以follow很多人 一个用户如果发了新weibo会自动推送所有关注他的人 可以搜索.关注其它用户 可以分类关注 用户可以发weibo, 转发.收藏.@其它人 发微博时可选择公开 ...