【发布时间】:2021-02-25 10:53:06
【问题描述】:
关于 IIS 重写。
我想在我的本地 IIS 实例上更改此 url
http://localhost/MySite/health?key=BczI5MyulpRLxI2kiJmIXwLOm78r3qr8z2gwcsYTGR4=&c
重定向到这个网址:
http://localhost/MySite/Health.svc/BczI5MyulpRLxI2kiJmIXwLOm78r3qr8z2gwcsYTGR4=/c
如您所见,我不希望使用传入请求
Health.svc/BczI5MyulpRLxI2kiJmIXwLOm78r3qr8z2gwcsYTGR4=/c
改为使用
health?key=BczI5MyulpRLxI2kiJmIXwLOm78r3qr8z2gwcsYTGR4=&c
Health.svc 是 WCF 端点名称,所以我只希望 /health 带有键和过滤器参数,如图所示。
无论我在我的网络配置中添加什么重写它仍然不起作用。我很困惑要输入什么网址,因为正则表达式似乎是有效的,因为我可以在 IIS 和在线正则表达式验证器中对其进行测试。
<rewrite>
<rules>
<rule name="HealthRewrite" stopProcessing="true" enabled="true">
<match url="MySite\/health\?key=([0-9a-zA-Z=]+)&([a-z])" />
<action type="Rewrite" url="MySite/Health.svc/{R:1}/{R:2}" appendQueryString="false" />
</rule>
</rules>
</rewrite>
我怎样才能让它工作?我已经安装了重写模块,可以在 IIS 中看到它,也可以看到 dll 已注册。
【问题讨论】:
标签: wcf iis url-rewriting iis-7.5