【问题标题】:IIS URL Rewrite with Incoming URL使用传入 URL 重写 IIS URL
【发布时间】:2018-01-25 01:16:24
【问题描述】:

我有一个奇怪的商业案例,我需要任何时候在我的网络服务器上调用一个 URL,并用传入的 URL 重写它。

例子:

传入网址

/site/1

它要去的网址

/innerlink/2

在浏览器网址中 /innerline/2 将显示 /site/1

如果您能回答这个问题或让我获得一些可以帮助我做到这一点的材料,我们将不胜感激。谢谢!

【问题讨论】:

    标签: iis url-rewriting url-rewrite-module


    【解决方案1】:

    这种方法的名称是“URL 重写”。在 IIS 中,您可以使用 URL 重写模块来实现它。 在您的情况下,当您只需要将 /site/1 重写为 /innerlink/2 时,您需要执行以下操作:

    1. 为 IIS 安装 URL rewrite module(可能已经安装)
    2. 在您的 web.config 中,您需要添加此重写规则:

    .

    <rule name="Laravel5" enabled="true" stopProcessing="true">
        <match url="^site/1$"  />
        <action type="Rewrite" url="/innerlink/2" />
    </rule>
    
    1. 现在,如果您在浏览器中打开此链接{YOUR DOMAIN, IP OR HOSTNAME}/site/1,它将向/innerlink/2 发出请求(但浏览器将继续显示/site/1

    附:您还可以在本文中找到一些有用的重写/重定向规则:https://host4asp.net/top-iis-rewrite-rules/

    【讨论】:

    • 我需要在 /site/1 是动态的地方执行此操作?我需要它来自它来自的任何引荐来源,就像它可能来自 /home/1 或 /web/2 一样。 IIS 入站规则在这种情况下是否仍然有效?
    • 您可以为此创建多个规则。或者,如果您在源 URL 和目标 URL 之间有某种模式,那么您可能需要使用正则表达式进行复杂规则
    • 来自不同主机名的情况如何?比如 bob.com/site 去 mysite.com/help 显示 bob.com/site ?
    • 一个非常相似的方法,但是你还需要安装 ARR 模块。你可以在这里找到我的类似答案:stackoverflow.com/questions/47034128/…
    猜你喜欢
    • 2010-11-04
    • 2011-02-03
    • 2015-02-06
    • 1970-01-01
    • 2016-06-27
    • 2013-06-16
    相关资源
    最近更新 更多