ASP.net URL 将子目录重写为外部 URL
ASP.net URL Rewrite subdirectory to external URL
我需要URL 将子目录重写到外部域。
示例:访问“https://example1.com/test", "https://example2.com/hello" should open. The URL should still be "https://example1.com/test”时。
我试图通过在 web.config 中添加重写规则来解决这个问题,但它不起作用。这是我制定的重写规则:
<rule name="TestRule" stopProcessing="true">
<match url="^test(/.*)?$" />
<action type="Rewrite" url="https://example2.com/hello" appendQueryString="false" />
</rule>
为了使用 Rewrite 操作类型将传入的请求重定向到另一个域(在浏览器地址栏中保留旧的 URL),我们需要安装 Application Request Routing
模块。
https://www.iis.net/downloads/microsoft/application-request-routing
默认情况下,Rewrite 操作只会将这些请求转发到同一个域,因此,我们只能在 Rewrite URL
字段中指定一个 URL 路径。
https://docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/url-rewrite-module-configuration-reference#rewrite-action
否则,将传入请求重定向到另一个域将导致 404 错误。
在我们安装 ARR 扩展后,按照以下步骤启用反向代理功能。
这里有一个官方的例子。
https://docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/reverse-proxy-with-url-rewrite-v2-and-application-request-routing
最后请参考下面的配置。
<rewrite>
<rules>
<rule name="Myrules" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{PATH_INFO}" pattern="/test.*" />
</conditions>
<action type="Rewrite" url="https://www.bing.com/maps" appendQueryString="false" logRewrittenUrl="false" />
</rule>
</rules>
</rewrite>
它会将具有“/test”段的请求重定向到 https://www.bing.com/maps。
如果我们想在不安装 ARR 扩展的情况下完成任务,我们必须使用重定向操作类型。当我们访问符合条件的URL时,浏览器地址栏中的URL会发生变化。
<rewrite>
<rules>
<rule name="Myrules" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{PATH_INFO}" pattern="/test.*" />
</conditions>
<action type="Redirect" url="https://www.bing.com/maps" appendQueryString="false" logRewrittenUrl="false" />
</rule>
</rules>
</rewrite>
如果有什么我可以帮忙的,请随时告诉我。
我需要URL 将子目录重写到外部域。
示例:访问“https://example1.com/test", "https://example2.com/hello" should open. The URL should still be "https://example1.com/test”时。
我试图通过在 web.config 中添加重写规则来解决这个问题,但它不起作用。这是我制定的重写规则:
<rule name="TestRule" stopProcessing="true">
<match url="^test(/.*)?$" />
<action type="Rewrite" url="https://example2.com/hello" appendQueryString="false" />
</rule>
为了使用 Rewrite 操作类型将传入的请求重定向到另一个域(在浏览器地址栏中保留旧的 URL),我们需要安装 Application Request Routing
模块。
https://www.iis.net/downloads/microsoft/application-request-routing
默认情况下,Rewrite 操作只会将这些请求转发到同一个域,因此,我们只能在 Rewrite URL
字段中指定一个 URL 路径。
https://docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/url-rewrite-module-configuration-reference#rewrite-action
否则,将传入请求重定向到另一个域将导致 404 错误。
在我们安装 ARR 扩展后,按照以下步骤启用反向代理功能。
这里有一个官方的例子。
https://docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/reverse-proxy-with-url-rewrite-v2-and-application-request-routing
最后请参考下面的配置。
<rewrite>
<rules>
<rule name="Myrules" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{PATH_INFO}" pattern="/test.*" />
</conditions>
<action type="Rewrite" url="https://www.bing.com/maps" appendQueryString="false" logRewrittenUrl="false" />
</rule>
</rules>
</rewrite>
它会将具有“/test”段的请求重定向到 https://www.bing.com/maps。
如果我们想在不安装 ARR 扩展的情况下完成任务,我们必须使用重定向操作类型。当我们访问符合条件的URL时,浏览器地址栏中的URL会发生变化。
<rewrite>
<rules>
<rule name="Myrules" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{PATH_INFO}" pattern="/test.*" />
</conditions>
<action type="Redirect" url="https://www.bing.com/maps" appendQueryString="false" logRewrittenUrl="false" />
</rule>
</rules>
</rewrite>
如果有什么我可以帮忙的,请随时告诉我。