IIS URL重写失败
我正在尝试实现简单的IIS URL重写。我想将URL:about.test.local重写为text.local/about.html 在下面的配置中,我添加了规则,但它似乎不起作用。有什么问题IIS URL重写失败,iis,url-rewriting,url-rewrite-module,Iis,Url Rewriting,Url Rewrite Module,我正在尝试实现简单的IIS URL重写。我想将URL:about.test.local重写为text.local/about.html 在下面的配置中,我添加了规则,但它似乎不起作用。有什么问题 <rewrite> <rules> <rule name="Rewrite1" patternSyntax="ExactMatch" stopProcessing="true"> <
<rewrite>
<rules>
<rule name="Rewrite1" patternSyntax="ExactMatch" stopProcessing="true">
<match url="about.test.local" />
<action type="Rewrite" url="http://test.local/about.html" />
</rule>
<rule name="Rewrite2" patternSyntax="ExactMatch" stopProcessing="true">
<match url="http://about.test.local/" />
<action type="Rewrite" url="http://test.local/about.html" logRewrittenUrl="true" />
</rule>
</rules>
</rewrite>
正如@beavel提到的,我添加了以下规则,但URL仍然没有被重写:
<rule name="Rewrite2a" patternSyntax="ExactMatch" stopProcessing="true">
<match url="(.+)" />
<conditions>
<add input="{HTTP_HOST}" pattern="about.test.local" />
</conditions>
<action type="Rewrite" url="http://test.local/about.html" />
</rule>
<rule name="Rewrite2b" patternSyntax="ExactMatch" stopProcessing="true">
<match url="(.+)" />
<conditions>
<add input="{HTTP_HOST}" pattern="http://about.test.local/" />
</conditions>
<action type="Rewrite" url="http://test.local/about.html" />
</rule>
问题在于匹配url不包含所解释的主机。如果将多个主机名绑定到一个IIS站点,并且只想重写一个主机名,则可以执行以下操作:
<rule name="Rewrite1" patternSyntax="ExactMatch" stopProcessing="true">
<match url="(.+)" />
<conditions>
<add input="{HTTP_HOST}" pattern="about.test.local" />
</conditions>
<action type="Rewrite" url="http://test.local/about.html" />
</rule>
您是否尝试过使用URL重写模块GUI中的“用户友好URL”模板来帮助设置?我还没有做过大量的自我重写,所以我不确定我的答案是否完全纠正了这个问题。我一开始就知道错了。