use*_*107 1 url-rewriting iis-7.5
我想重写URL以重定向到不同的端口,基于HTTP_URL,同时保留其余的URL和查询字符串(如果指定).例如,
http://host/john/page.aspx应该被重定向到http://host:1900/page.aspx,
http://host/paul/anotherpage.aspx?query到http://host:1901/anotherpage.aspx?query
和http://host/ringo到http://host:1902/
我添加了一堆,每允许端口规则,但它并不高效或管理.
我正在尝试使用map,(即john-> 1900,paul-> 1901),但无法弄清楚如何组合所需的URL.
有什么建议?
它需要一些小小的工作来让它工作,但回头看它的解决方案非常简单和优雅.
<rewrite>
<rules>
<clear />
<rule name="Redirect known names to ports" stopProcessing="true">
<match url=".*" />
<conditions trackAllCaptures="true">
<add input="{REQUEST_URI}" pattern="/(.*?)/(.*)" />
<add input="{NameToPort:{C:1}}" pattern="(.+)" />
</conditions>
<action type="Redirect" url="http://{HTTP_HOST}:{C:3}/{C:2}" appendQueryString="false" redirectType="Permanent" />
</rule>
</rules>
<rewriteMaps>
<rewriteMap name="NameToPort">
<add key="john" value="1900" />
<add key="paul" value="1901" />
<add key="ringo" value="1902" />
</rewriteMap>
</rewriteMaps>
</rewrite>
Run Code Online (Sandbox Code Playgroud)
如果这是您正在寻找的,请告诉我.
| 归档时间: |
|
| 查看次数: |
9731 次 |
| 最近记录: |