为什么我的 url 重定向命令不能正常工作?
Why is my url redirect command not working properly?
我有一个内部网站 http://example/
。我需要将所有流量重定向到新的内部站点 (http://newexample/
) 除了 以下两个子文件夹中的所有内容:
/Admin/
/API/Test/
这是我尝试过的:
<rewrite>
<rules>
<rule name="Redirect Example" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{REQUEST_URI}" pattern="^Admin/.*" negate="true"/>
<add input="{REQUEST_URI}" pattern="^API/Test/.*" negate="true"/>
</conditions>
<action type="Redirect" url="http://newexample/" appendQueryString="true" redirectType="Found" />
</rule>
</rules>
</rewrite>
我遇到的问题是它正在重定向所有内容 ,包括 两个子文件夹中的内容。我还尝试删除导致没有页面被重定向的 negate
属性。我在这里做错了什么?
您只需要对规则做一些小改动。
<rule name="Redirect Example" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{REQUEST_URI}" pattern="^/Admin/.*" negate="true" />
<add input="{REQUEST_URI}" pattern="^/API/Test/.*" negate="true" />
</conditions>
<action type="Redirect" url="http://newexample/" appendQueryString="true" redirectType="Found" />
</rule>
我发布了我找到的解决方案,希望它能对以后的人有所帮助。这一切都与 <match url="(^$)" />
和 add
元素上的 pattern
属性有关。仔细观察非常细微的差异:
我改了:
<rewrite>
<rules>
<rule name="Redirect Example" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{REQUEST_URI}" pattern="^Admin/.*" negate="true"/>
<add input="{REQUEST_URI}" pattern="^API/Test/.*" negate="true"/>
</conditions>
<action type="Redirect" url="http://newexample/" appendQueryString="true" redirectType="Found" />
</rule>
</rules>
</rewrite>
到
<rewrite>
<rules>
<rule name="Redirect Example" enabled="true" stopProcessing="true">
<match url="(^$)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{REQUEST_URI}" pattern="^Admin$" negate="true"/>
<add input="{REQUEST_URI}" pattern="^API/Test$.*" negate="true"/>
</conditions>
<action type="Redirect" url="http://newexample/" appendQueryString="true" redirectType="Found" />
</rule>
</rules>
</rewrite>
我有一个内部网站 http://example/
。我需要将所有流量重定向到新的内部站点 (http://newexample/
) 除了 以下两个子文件夹中的所有内容:
/Admin/
/API/Test/
这是我尝试过的:
<rewrite>
<rules>
<rule name="Redirect Example" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{REQUEST_URI}" pattern="^Admin/.*" negate="true"/>
<add input="{REQUEST_URI}" pattern="^API/Test/.*" negate="true"/>
</conditions>
<action type="Redirect" url="http://newexample/" appendQueryString="true" redirectType="Found" />
</rule>
</rules>
</rewrite>
我遇到的问题是它正在重定向所有内容 ,包括 两个子文件夹中的内容。我还尝试删除导致没有页面被重定向的 negate
属性。我在这里做错了什么?
您只需要对规则做一些小改动。
<rule name="Redirect Example" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{REQUEST_URI}" pattern="^/Admin/.*" negate="true" />
<add input="{REQUEST_URI}" pattern="^/API/Test/.*" negate="true" />
</conditions>
<action type="Redirect" url="http://newexample/" appendQueryString="true" redirectType="Found" />
</rule>
我发布了我找到的解决方案,希望它能对以后的人有所帮助。这一切都与 <match url="(^$)" />
和 add
元素上的 pattern
属性有关。仔细观察非常细微的差异:
我改了:
<rewrite>
<rules>
<rule name="Redirect Example" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{REQUEST_URI}" pattern="^Admin/.*" negate="true"/>
<add input="{REQUEST_URI}" pattern="^API/Test/.*" negate="true"/>
</conditions>
<action type="Redirect" url="http://newexample/" appendQueryString="true" redirectType="Found" />
</rule>
</rules>
</rewrite>
到
<rewrite>
<rules>
<rule name="Redirect Example" enabled="true" stopProcessing="true">
<match url="(^$)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{REQUEST_URI}" pattern="^Admin$" negate="true"/>
<add input="{REQUEST_URI}" pattern="^API/Test$.*" negate="true"/>
</conditions>
<action type="Redirect" url="http://newexample/" appendQueryString="true" redirectType="Found" />
</rule>
</rules>
</rewrite>