【发布时间】:2014-01-01 04:21:09
【问题描述】:
例如,假设我的网站是www.mysite.com。
我在这里创建了一个子域,比如说sub.mysite.com,并在这里部署了一个asp.net webform 应用程序。当我浏览到http://sub.mysite.com 时一切正常
我的一个朋友拥有另一个网站,比如说www.hissite.com,他为子域sub.hissite.com 创建了一个DNS 条目,并设置了我网站的IP 地址。他想将他网站的子域重定向到我网站的子域。
不幸的是,我的提供商告诉我,这种配置仅适用于二级域,我应该在我的 www.mysite.com Web 应用程序中创建一段代码,以检查请求是否与站点 sub.hissite.com 相关,并在这种情况下重定向到我的sub.mysite.com。
如何在我的 webform 应用程序中检查请求是否针对 sub.hissite.com?
客户端浏览器中的 URL 会发生什么变化?
感谢您的帮助
编辑 1:
实际上我已经为我的网站配置了一个别名,但是在导航到 sub.hissite.com 时出现以下错误:
Application Request Routing Error
500 - Internal server error.
There is a problem with the resource you are looking for, and it cannot be displayed. The domain may not be inserted correctly on Rewrite Maps.
编辑 2: 按照OnoSendai 的回答,我实现了一个MVC ActionFilter
public class MyRedirectFilter : ActionFilterAttribute
{
public override void OnActionExecuting( ActionExecutingContext filterContext ) {
string newUri = "http://sub.mysite.com";
HttpRequestBase request = filterContext.HttpContext.Request;
string referer = request.ServerVariables["HTTP_HOST"];
if ( referer != null && referer.Contains( "hissite" ) ) {
filterContext.HttpContext.Response.Redirect( newUri, true );
}
}
}
现在应用程序运行良好。但是浏览器地址栏中的地址从www.hissite.com 变为sub.mysite.com。有什么办法让它不改变吗?
谢谢
【问题讨论】:
-
您也可以配置 iis 来响应该子域
-
你的意思是使用别名吗?
-
是的。你说得对。但不幸的是,我无法直接访问 IIS 设置,因为它是共享主机。我唯一能做的就是设置一个别名,然后将其转换为 IIS 绑定。然而这还不够,因为单独的绑定无法区分域和子域。
-
你可以使用 urlrewrite 模块
标签: c# asp.net redirect response.redirect http-redirect