[玩转系统] 设置和使用 IIS URL 重写模块(分步)
作者:精品下载站 日期:2024-12-14 12:33:35 浏览:13 分类:玩电脑
设置和使用 IIS URL 重写模块(分步)
因此,您要开始一个新项目,需要建立一个网站,有人让您在旧的企业 Windows Server 机器上使用 IIS(Internet 信息服务)。真是太累了!您如何完成配置 IIS URL 重写规则等日常任务?不要害怕!今天,您将了解如何做到这一点。
在本教程中,您将使用一个简单的 VuePress 网站项目作为示例,并弄清楚该项目需要什么样的重写规则。尽管付出了很多努力,但这个过程并不算太冗长!
继续阅读,永远不要让您的网站导致链接失效!
先决条件
本教程将是一个非常实用的演示!如果您想继续操作,请确保您具备以下条件:
- 任何支持的 Windows 操作系统(Windows 10 或 11,或 Windows Server 2019、20H2 或 2022)
- Internet 信息服务 7 或更高版本
- 您已在 IIS 上托管的网站
安装 URL 重写模块
IIS URL Rewrite 模块是 IIS 上必须了解的模块之一。该模块允许您快速构建规则来管理站点上的传入和传出链接。
通过安装 URL 重写模块开始本教程。您的系统上可能有也可能没有它,因此您首先必须检查该模块是否已安装在您的系统上。
1. 打开 Internet 信息服务 (IIS) 管理器,然后在连接面板中的站点下选择您的任意网站。
如果您在列表中没有看到该模块,则需要先安装它。但如果该模块存在,如下面的屏幕截图所示),您可以跳转到“重定向 URL 以使用 HTTPS 保护网站”部分!
2. 下载 IIS 7(及更高版本)的 URL 重写模块,然后按照提示安装该模块。
3. 最后,重新启动 IIS 管理器,现在该模块应该可用了!
重定向 URL 以使用 HTTPS 来保护网站
将您的网站放在互联网上会带来很多风险。因此,第一步是保护您的网站,IIS URL 重写模块可以提供帮助。您不想通过纯 HTTP 为您的网站提供服务,而是需要 HTTPS,您可以通过重定向来处理它。
1. 首先,打开 IIS 管理器,然后单击左侧面板上的默认网站。双击URL Rewrite模块,如下图所示,添加重写规则。
2. 接下来,单击右侧面板上的添加规则选项,将出现一个弹出窗口,您可以在其中选择规则模板。规则模板允许您根据需要创建一个或多个重写规则。
3. 选择空白规则,然后单击确定,因为没有模板与您的用例匹配。相反,您将手动配置规则。
4. 现在您将创建一个匹配所有 URL 的正则表达式模式匹配规则。您将匹配任何传入的 URL,但仅修改那些不使用 HTTPS 的 URL。
在匹配 URL 部分:
- 将请求的 URL 设置为匹配模式,使您能够使用正则表达式来决定要匹配哪些传入请求。
- 将使用设置为正则表达式,以设置匹配每个传入请求的规则。
- 输入 (.*) 作为模式 - 此正则表达式匹配所有 URL,以针对此规则的每个 URL。
- 默认情况下会选择忽略大小写,但由于您的模式实际上是“匹配所有”,因此此选择并不重要。
5. 现在向下滚动一点,并添加条件以排除使用 https 的传入请求,如下所示。
在条件部分下设置如下字段以检查条件,该条件将决定是否对传入请求应用规则:
- 将条件输入设置为 {HTTPS},这将仅匹配使用 HTTPS 协议(而不是 HTTP)的请求。
- 将下拉列表保留为与模式匹配。
- 将模式设置为 ^OFF$,这会导致规则应用于不使用 HTTPS 作为协议的传入请求。
6. 添加条件后,设置规则将采取的操作:
- 将操作类型设置为重定向,这会将用户重定向到浏览器中的新地址(而不是重写 URL 的外观)。
- 将重定向 URL 设置为 https://{HTTP_HOST}/{REQUEST_URI},这会将用户重定向到同一域(或“主机”、“使用服务器变量 HTTP_HOST),但使用 HTTPS 作为协议。
- 将重定向类型设置为永久 (301),因为您的页面已永久更改其位置。
- 单击操作面板下的应用按钮以应用重定向规则。
7. 最后,打开您最喜欢的网络浏览器并将您的网站导航至 (http://localhost)。您将在下面看到您的网站重定向到 https://localhost 以进行安全访问。
如果您的浏览器似乎忽略了重写规则,请仔细检查您的模式 - 大多数时候,问题是拼写错误或额外的空格。另外,通过选择规则并单击“启用规则”选项来验证您的规则是否已启用,如下所示。
使用web.config文件修改URL重写规则
也许您更喜欢修改配置文件中的重写规则。如果是这样,您可以通过直接编辑网站的 web.config 文件来修改规则。但首先,您需要找到您的 web.config 文件,最快的方法是通过 IIS 管理器。
1. 在 IIS 管理器上,单击连接面板(左侧面板)下的网站,然后单击操作面板(右侧面板)中的浏览控制板)。 web.config 文件的位置将在文件资源管理器中打开,如下所示。
2. 在您喜欢的文本编辑器中打开web.config 文件。如果您没有进行任何更改,它将如下所示
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
</configuration>
3.根据自己的喜好修改重写规则。修改应该在 内部,如果它还不存在,您需要创建它。
修改规则的最终结果如下所示。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- This section tells IIS we're configuring a module for the web server functionality or one of its modules -->
<system.webServer>
<!-- This section defines configuration for the URL Rewrite module -->
<rewrite>
<rules>
<!-- This section adds a new rule for our HTTPS REdirect -->
<rule name="HTTPS Redirect" stopProcessing="true">
<!-- Match all URLS... -->
<match url="(.*)" />
<conditions>
<!-- ... but only if they are using HTTP instead of HTTPS! -->
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<!-- Redirect to a HTTPS version of the page -->
<action type="Redirect" url="https://{HTTP_HOST}/{REQUEST_URI}" appendQueryString="false" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
4. 最后,在浏览器上导航至 http://localhost 以确保规则有效,并验证 URL 更改为 https://localhost。
如果您的网站开始抛出 403.18 错误(如下面的屏幕截图所示),则很可能导致该错误的是影响子应用程序或“虚拟目录”的规则。 “您需要阻止规则被继承来修复错误,但这个主题超出了本教程的范围。
通过 PowerShell 脚本修改 URL 重写规则
如果您更喜欢编写脚本,PowerShell 脚本可以让您完成创建重写规则。这些 cmdlet 非常冗长,您需要在脚本中运行相当多的命令,而不是逐个运行它们。
1. 在您喜欢的文本编辑器或脚本编辑器中创建脚本文件,使用以下代码填充该文件并根据需要修改值。
此时,您应该熟悉下面代码中的值,因为它们与您在上一节中使用的值相同。
# Firstly, the script needs to import the module WebAdministration to get access to the cmdlets required to add and modify the “WebConfigurationProperties” (which will just get injected into the web.config)
Import-Module webAdministration
# Then the script defines your IIS website - in this case, the default site.
$site = "iis:\sites\Default Web Site"
# Then the sript will create the property for our rule
Add-WebConfigurationProperty -pspath $site -filter "system.webserver/rewrite/rules" -name "." -value @{name='HTTPS Redirect'; patternSyntax='ECMAScript'; stopProcessing='True'}
# The script ill set it to match any incoming request
Set-WebConfigurationProperty -pspath $site -filter "system.webserver/rewrite/rules/rule[@name='HTTPS Redirect']/match" -name url -value "(.*)"
# And finally, add the familiar condition to only match HTTP requests (and not HTTPS).
Add-WebConfigurationProperty -pspath $site -filter "system.webserver/rewrite/rules/rule[@name='HTTPS Redirect']/conditions" -name "." -value @{input="{HTTPS}"; pattern='^OFF$'}
# The last 3 commandlets set the values for type, URL and appendQueryString-parameter for the action itself, “Rewrite”, “https://{HTTP_HOST}/{REQUEST_URI}” and “false”, respectively.
Set-WebConfigurationProperty -pspath $site -filter "system.webServer/rewrite/rules/rule[@name='HTTPS Redirect']/action" -name "type" -value "Redirect"
Set-WebConfigurationProperty -pspath $site -filter "system.webServer/rewrite/rules/rule[@name='HTTPS Redirect']/action" -name "url" -value "https://{HTTP_HOST}/{REQUEST_URI}"
Set-WebConfigurationProperty -pspath $site -filter "system.webServer/rewrite/rules/rule[@name='HTTPS Redirect']/action" -name "appendQueryString" -value "false"
2. 运行脚本以应用对重写规则的 web.config 文件的修改。
3. 最后,导航到 http://localhost 以测试规则是否有效。
也许您直接修改 web.config 文件后突然出现“500 - Internal Server Error”。如果是这样,请验证您的 web.config 文件的语法 - 这很容易搞砸。或者尝试重新安装 IIS 的 URL 重写模块。
实施 URL 重写规则来修复损坏的链接
您已成功使用 HTTPS 保护您的网站,但如果您的网站导致链接损坏怎么办?想象一下,您刚刚收到同事发来的一封电子邮件,抱怨通往您网站的链接已损坏,因此您进行了调查。
你瞧,从日志中,你发现很多人都遇到了 404 错误。该错误带有指向不再存在的旧文章的链接。深入挖掘,您会发现大量网站链接到您的网站,其中引用网站的链接已损坏。
联系所有网站开发人员来更新链接是一个巨大的痛苦!幸运的是,URL 重写模块可以通过将损坏的 URL 重定向到正确的 URL 来挽救局面。
1. 按照“使用 IIS 管理器修改 URL 重写规则”中的操作创建新的空白规则(步骤一到三)
2. 接下来,使用以下内容配置新的重写规则:
- 使用精确匹配将请求的 URL 设置为匹配模式。
- 输入损坏的 URL 作为模式。
- 选择重定向作为操作类型。
3. 在操作部分下,设置以下内容:
- 插入新网址作为重定向网址
- 默认情况下,您可以让附加查询字符串选项保持选中状态,以保留 URL 在重定向之前可能具有的任何参数。
- 将重定向类型设置为永久 (301)。
- 单击应用以完成新规则。
请注意损坏链接的准确 URL。在下面的示例中,Pattern 字段中包含端口 80。即使可见 URL 中省略了端口,它也会出现在 IIS 考虑用于规则的 URL 中。
4. 最后,导航到损坏的 URL 并查看它是否重定向到正确的 URL。
结论
在本教程中,您学习了如何安装 IIS URL 重写模块、创建第一个 URL 重写规则以及解决可能出现的一些最典型的问题。此时,您现在可以使用 URL 重写模块保持网站正常运行并可访问。
有了这些知识,您就可以承担更复杂的任务 - 例如更改站点的目录结构或配置 React Router 的规则。 URL 重写模块允许您将用户重定向到新位置,并使用重写规则从多个地址共享您的内容 - 但这是另一个教程的主题!
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag