[英]Subdomain redirecting to root in MVC 3
關於MVC 3應用程序上的子域,我遇到了一個令人沮喪的困惑問題。 使用下面的代碼,我的子域每次都會將我路由回域的根目錄。
當我輸入subdomain.mydomain.com時,它會將我路由到domain.com?nr=0。 我找不到原因,或者在代碼中的何處附加了querystring值。
public class SubdomainRoute : RouteBase
{
public override RouteData GetRouteData(HttpContextBase httpContext)
{
var url = httpContext.Request.Headers["HOST"];
var index = url.IndexOf(".");
if (index < 0)
return null;
var subDomain = url.Substring(0, index);
if (!String.IsNullOrEmpty(subDomain) && subDomain != "www" && subDomain != "mydomain")
{
var routeData = new RouteData(this, new MvcRouteHandler());
routeData.Values.Add("controller", "External");
routeData.Values.Add("action", "CoolAction");
routeData.Values.Add("subdomain", subDomain);
return routeData;
}
else
return null;
}
}
我禁用了表單身份驗證,但是並沒有解決它。 我也有一個寫在www前面的URL重寫。 所有要求,如果www。 丟失了-我也刪除了它,但沒有解決。 以下是我的Global.asax的RegisterRoutes:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("elmah.axd");
routes.Add(null, new SubdomainRoute());
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new[] { "MyProject.UI.Web.Controllers" }
);
routes.MapRoute("NotesController",
"Notes/{noteDestinationType}/{noteDestinationGuid}",
new { controller = "Notes", action = "SaveNote" });
}
我整天都在敲頭,我放棄了。 我正在尋求幫助。 TIA。
我認為您缺少regex.Split(url);
查看更多
var url = httpContext.Request.RawUrl;
Regex regex = new Regex("/");
string[] substrings = regex.Split(url);
var index = host.IndexOf(".");
var subDomain = host.Substring(0, index);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.