【问题标题】:ASP.Net Redirect Request from a specific URL to a particular part of my website从特定 URL 到我网站特定部分的 ASP.Net 重定向请求
【发布时间】:2014-07-23 13:27:54
【问题描述】:

我们的服务器管理员在 IIS 中为服务器上的网站设置了“站点绑定”,这样当最终用户使用特定 url 时,它就会重定向到我们的站点。

我需要能够确定其中一个重定向何时发生,然后将最终用户引导至网站上的特定页面。

谁能帮忙?

【问题讨论】:

  • 有多少个绑定?您想重定向到多少个不同的 URL?即您需要静态或动态解决方案。
  • 有 3 个绑定,但我只需要处理一个特定的绑定,我想我需要一个重写规则,我只是不确定如何。
  • 好的,不要认为 web.config 重写规则就足够了...尝试在绑定重定向到的页面上使用 URLReferrer(并且仅该页面),如果它与绑定匹配,则重定向到你想要的地方。或者如下所述,使用服务器变量检测“urlreferer”并相应地重定向。

标签: c# asp.net iis url-redirection


【解决方案1】:

您的问题是说用户被重定向到您的站点,但这并不是 IIS 站点绑定的真正工作方式。它们更像是单个站点的别名。如果是这种情况,并且站点有多个绑定,并且您想根据使用的绑定进行重定向,那么是的,您可以在 web.config system.webServer 部分使用重写规则,如下所示:

    <rewrite>
        <rules>
            <clear />
            <rule name="redirect" stopProcessing="true">
                <match url="(.*)" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                    <add input="{SERVER_NAME}" pattern="www.binding1.com" />
                </conditions>
                <action type="Redirect" url="http://www.binding2.com/pages/binding1home" />
            </rule>
        </rules>
    </rewrite>

【讨论】:

    【解决方案2】:

    根据重定向的设置方式,您可以尝试使用当前请求的 UrlReferrer 属性:

    Request.UrlReferrer
    

    【讨论】:

      【解决方案3】:

      您可以在 Request.ServerVariables 中的“HTTP_HOST”或“SERVER_NAME”下找到绑定名称。如果您有权访问服务器变量?如果是这样,如果找到指定的绑定名称,您可以重定向到特定页面。 (见:MSDN

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-10-12
        • 1970-01-01
        • 2019-01-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-26
        • 2015-08-28
        相关资源
        最近更新 更多