【问题标题】:Alternative to Response.Redirect to effect a subdomain替代 Response.Redirect 以影响子域
【发布时间】:2010-12-21 04:16:26
【问题描述】:

我有一个托管在共享托管环境中的网站。他们使用通配符子域设置,并建议使用 Response.Redirect 来实现子域的错觉。

有没有办法做到这一点,使“切换”发生在服务器上,而不是先弹回浏览器?

Server.Transfer 仅在我转移到实际资源时才有效。所以从 sub1.mydomain.com 重定向到 www.mydomain.com/public/ 不起作用。我必须重定向到 www.mydomain.com/public/mypage.aspx 而不是我不想这样做。

【问题讨论】:

    标签: asp.net wildcard-subdomain


    【解决方案1】:

    为了确保“切换”发生在服务器上,您可以创建一个简单的 HTTP 模块来拦截每个请求,检查请求的 URL,然后根据需要转发它们。您的模块所要做的就是处理 OnBeginRequest 事件,然后转发请求。这样你就可以真正拥有无限的子域了。

    还可能需要添加一个空白主机标头,以便对未列出的子域的任何请求都转发到正确的默认网站

    如果您不熟悉它们,模块的创建和使用非常简单。 这是 Brendan Tompkins 的一个非常相似的实现的链接: http://codebetter.com/blogs/brendan.tompkins/archive/2006/06/27/146875.aspx

    如果您需要特定的 URL“外观”行为,您还可以在模块中进行一些 URL 重写。

    【讨论】:

    • 您正在描述一种 URL 重写形式,但最终用户将看不到生成的 URL。例如,domain.com/subdomain/page.aspx 可以在服务器上被捕获并重新路由,但用户看不到更改。此外,如果域和子域在同一个网站上运行,则最终页面可能相同。
    • 根据提出的问题,我认为这是一项要求。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-25
    • 2015-04-06
    • 2012-10-30
    • 1970-01-01
    • 2019-08-01
    • 2017-07-06
    相关资源
    最近更新 更多