IIS 重写映射 - 键和值都可以是 URL 吗?

XuDong Peng-MSFT 10,841 信誉分 Microsoft 供应商
2024-03-25T08:19:19.41+00:00

我使用示例使用重写映射取得了良好的成功:

<rewriteMaps>  
    <rewriteMap name="StaticRedirects">  
        <add key="/old-article.aspx?id=1" value="/article.aspx?id=1" />  
        <add key="/posts/default.aspx?id=1" value="/article.aspx?id=1" />  
        <add key="/old-title.html" value="/article.aspx?id=1" />  
    </rewriteMap>  
</rewriteMaps>  

<rules>  
    <rule name="Redirect Rule" stopProcessing="true">  
        <match url=".*" />  
        <conditions>  
            <add input="{StaticRedirects:{REQUEST_URI}}" pattern="(.+)" />  
        </conditions>  
        <action type="Redirect" url="http://localhost{C:1}" appendQueryString="False" redirectType="Permanent" />  
    </rule>  
</rules> 

我的问题是 - 我希望键和值都是单独的 URL。 我有 IIS 监听 *,一个接受 *.foo.com 的通配符证书 - 我需要根据这些类型的规则进行重定向。

<add key="s2.foo.com" value="s1.foo.com" />  
<add key="s3.foo.com" value="s1.foo.com/somespecialpage" />

我见过一些有限的示例,其中部分的键是 URL,而其他示例的值是 URL - 但我无法找到两者都是URL的示例。

虽然我意识到我可以构建一系列标准规则,但我觉得映射会更优雅。 谢谢。 Note:该问题整理于:IIS Rewrite map - can both key and value be URLs?

Internet Information Services
0 个注释 无注释
{count} 票

接受的答案
  1. Zhi Lv - MSFT 32,736 信誉分 Microsoft 供应商
    2024-03-25T13:33:57.39+00:00

    你好,

    根据您的描述,我的理解是您想通过重写映射将“s2.foo.com”重定向到“s1.foo.com”并将“s3.foo.com”重定向到“s2.foo.com/somespecialpage”, 如果我的理解有误,请指出我的错误。

    在重写映射中,键和值中不可能同时包含 {HTTP_HOST}。 如果要实现多个重定向,建议单独创建空白规则。 尽管这会重复,但这是最不容易出错的方法。


    如果答案是正确的解决方案,请单击“接受答案”并请投赞成票。如果您对此答案有其他疑问,请点击“评论”。

    注意:如果您想接收此线程的相关电子邮件通知,请按照我们文档中的步骤启用电子邮件通知。

    最好的问候

    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。