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 没有收到此请求。
我认为您不应该尝试在客户端重写它。
我有一个 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 没有收到此请求。
我认为您不应该尝试在客户端重写它。