IIS Rewrite配置:实现URL中字符串全局替换需求
IIS全局替换URL中指定字符串的配置方案
前提条件
确保你的IIS服务器已安装URL Rewrite模块(IIS默认未包含,需单独安装)
配置方案
方法1:直接修改web.config文件
在站点根目录的web.config文件中,找到<system.webServer>节点,添加以下URL重写规则:
<rewrite> <rules> <rule name="Global Replace 'old' with 'new'" stopProcessing="true"> <!-- 匹配整个请求路径 --> <match url="^(.*)$" ignoreCase="true" /> <!-- 仅当URL中包含'old'时触发规则,避免无效执行 --> <conditions> <add input="{REQUEST_URI}" pattern="old" ignoreCase="true" /> </conditions> <!-- 执行重写(若需浏览器地址栏跳转,将Rewrite改为Redirect,可附加redirectType="Permanent"或"Temporary") --> <action type="Rewrite" url="{C:0}" /> <!-- 全局替换REQUEST_URI中的所有'old'为'new' --> <serverVariables> <set name="REQUEST_URI" value="{Replace:{REQUEST_URI},old,new}" /> </serverVariables> </rule> </rules> </rewrite>
方法2:通过IIS管理器图形界面配置
- 打开IIS管理器,选中目标站点,双击右侧面板的URL Rewrite图标。
- 点击右侧“添加规则”,选择“空白规则”。
- 按以下参数配置:
- 规则名称:自定义(比如
Global Replace old with new) - 匹配URL:
- 请求路径:
Matches the Pattern - 使用:
Regular Expressions - 模式:
^(.*)$ - 忽略大小写:按需勾选(默认勾选)
- 请求路径:
- 条件:
- 点击“添加”,条件输入:
{REQUEST_URI} - 检查输入字符串:
Matches the Pattern - 模式:
old - 忽略大小写:按需勾选
- 点击“添加”,条件输入:
- 操作:
- 操作类型:
Rewrite(或Redirect,根据需求选择) - 重写URL:
{C:0}
- 操作类型:
- 展开“服务器变量”,点击“添加”:
- 变量名称:
REQUEST_URI - 值:
{Replace:{REQUEST_URI},old,new}
- 变量名称:
- 规则名称:自定义(比如
- 保存规则即可。
关键说明
- 大小写区分:如果需要严格区分大小写,将规则中的
ignoreCase="true"改为ignoreCase="false"。 - 查询字符串处理:上述规则会同时替换路径和查询字符串中的
old。若仅需替换路径部分,可将条件中的{REQUEST_URI}改为{PATH_INFO}。 - 重写 vs 重定向:使用
Rewrite时,服务器内部处理请求,浏览器地址栏不变;使用Redirect时,浏览器会收到跳转指令,地址栏更新为新URL,适合需要对外暴露新地址的场景。
验证示例
原URL:
localhost://part1/old/part2/something-old
处理后:localhost://part1/new/part2/something-new
原URL:
localhost://part1/old/part2/part3/nothing-old
处理后:localhost://part1/new/part2/part3/nothing-new
内容的提问来源于stack exchange,提问作者Breck
相关产品推荐
相关产品推荐

