Response.Redirect的替代方案,以实现子域

时间:2009-11-28 07:28:29

标签: asp.net wildcard-subdomain

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

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

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

1 个答案:

答案 0 :(得分:0)

为确保在服务器上进行“切换”,您可以创建一个简单的HTTP模块来拦截每个请求,检查请求的URL,然后根据需要转发它们。您的所有模块必须处理OnBeginRequest事件,然后转发请求。通过这种方式,您可以拥有无​​限的子域名。

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

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

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