IIS如何重写rewrite域名某前缀开头访问到指定目录

文章介绍了在Windows环境下,IIS服务器如何配置重写规则来实现类似Nginx的路径转发功能。具体包括创建虚拟目录和设置URL重写规则,将默认请求转发到指定IP:端口,以及将/test路径映射到特定的物理目录。
摘要由CSDN通过智能技术生成

超短连接转换j1z.cc(永久有效)

前言

项目中碰到windows上运行的项目,无法直接使用nginx进行配置,在nginx上两行配置即可解决,在IIS上搜了很多帖子没找到,记录一下解决方案。

方案主要解决问题

  • 不想新申请域名访问新服务
  • 需要不同访问路径对应不同的物理路径

以下针对实现两条规则:

  1. 默认请求转发到:172.16.12.11:8080
  2. test请求转发到物理目录:E:\wwwroot\test目录

Nginx中的配置

    location /{
     proxy_http_version 1.1;
     proxy_set_header Upgrade $http_upgrade;
     proxy_set_header Connection  "upgrade";

     client_max_body_size   2000m;
     proxy_pass http://172.16.12.11:8080;
    }
    
	location ~^/test {
		root E:\data\wwwroot;
	}

IIS配置

问题点:

  • 模式编辑时前缀不以/ 开始
  • 重写URL不能是具体的目录

所以针对难点的解决方案配置如下:

1. 需要增加虚拟目录

在IIS中添加虚拟目录,比如名称叫:testdir ,物理路径设置为:E:\data\wwwroot\test

2. 配置rewrite规则

2.1 config配置
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="test">
                    <match url="^test/(.*)" />
                    <action type="Rewrite" url="testdir\{R:1}" appendQueryString="false" />
                </rule>
                <rule name="default">
                    <match url="^(.*)" />
                    <action type="Rewrite" url="http://172.16.12.11:8080/{R:0}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>
2.2 页面配置

IIS rewrite cofnig

IIS rewrite config 重写配置

大功告成!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值