【问题标题】:IIS Rewrite Rule ClarificationIIS 重写规则说明
【发布时间】:2026-01-11 08:20:05
【问题描述】:

有人可以帮我理解什么时候使用的区别吗:

<match url="^$" /> vs. <match url=".*" />

例子:

<rule name="Test" stopProcessing="true">
            <match url="^$" />
            <conditions>
              <add input="{{HTTP_HOST}}" pattern="^(.+\.)?domain\.com\.au$" />
            </conditions>
            <action type="Redirect" url="http://www.new-domain.com.au/" />
          </rule>

【问题讨论】:

    标签: regex iis url-rewriting


    【解决方案1】:

    ^$ 将匹配空 url

    .* 将匹配任何 url 为空或不匹配。但不会匹配多行 url

    Prevent Image Hotlinking

    图像热链接是使用来自一个站点的图像到属于第二个站点的网页。来自您站点的未经授权的图像热链接会增加带宽使用,即使该站点未按预期进行查看。图片盗链还有其他问题,例如版权或在不适当的上下文中使用图片。

    使用 URL 重写模块,防止图片盗链非常容易。例如,以下重写规则可防止热链接到网站http://ruslany.net 上的所有图像: 将纯副本查看到剪贴板打印?

    <rule name="Prevent image hotlinking">  
    <match url=".*\.(gif|jpg|png)$"/>  
    <conditions>  
    <add input="{HTTP_REFERER}" pattern="^$" negate="true" />  
    <add input="{HTTP_REFERER}" pattern="^http://ruslany\.net/.*$" negate="true" />  
    </conditions>  
    <action type="Rewrite" url="/images/say_no_to_hotlinking.jpg" />  
    </rule>  
    

    仅当请求中的 HTTP Referer 标头不为空且不等于站点的域时,此规则才会将对任何图像文件的请求重写为 /images/say_no_to_hotlinking.jpg。

    【讨论】:

    • 好的,但是匹配空 URL 是什么意思,为什么我们需要这个?对不起,愚蠢的问题。
    • 谢谢,但响应仍然没有说明匹配空 URL 的含义。如果你能举例说明,也许会很好。