IIS 用#号重写

IIS Rewrite with # sign

我有一个 url cars\model\BMW\index.html#2,我正在尝试将它重定向到 cars\model\PDF\BMW.html#page2 无论如何让它工作?

Is there anyway to find out if the URL has a # sign in IIS?

<rule name="InboundRuleTrailingPageNumber" enabled="true" stopProcessing="true">
     <match url="cars\/model\/(\w+)\/index.html(\w+)" />
        <conditions trackAllCaptures="false">
            <add input="{REQUEST_URI}" pattern="cars\/model\/(\w+)\/index.html(\w+)" negate="true"/>
        </conditions>
         <action type="Redirect" url="/cars/model/content/PDF/{R:1}.pdf#page={R:2}" logRewrittenUrl="true"/>
</rule>

# 是纯客户端行为。如果您通过网络浏览器对其进行测试。

您会看到 IIS 甚至没有将 #2 发送到 IIS 服务器。

如果我通过 fiddler composer 尝试相同的操作,

并且你可以看到HTTP-API会接管这个请求和return 400错误的请求目录。 IIS 没有收到此请求。

我认为您不应该尝试在客户端重写它。