-
-
Save RyannosaurusRex/4145948 to your computer and use it in GitHub Desktop.
public class RouteConfig | |
{ | |
public static void RegisterRoutes(RouteCollection routes) | |
{ | |
routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); | |
routes.MapRoute( | |
"Sub", // Route name | |
"{controller}/{action}/{id}", // URL with parameters | |
new { controller = "SubdomainController", action = "AnyActionYouLike", id = UrlParameter.Optional }, | |
new { controller = new SubdomainRouteConstraint() }, | |
new[] { "MyProjectNameSpace.Controllers" } | |
); | |
routes.MapRoute( | |
name: "Default", | |
url: "{controller}/{action}/{id}", | |
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } | |
); | |
} | |
} |
public class SubdomainRouteConstraint : IRouteConstraint | |
{ | |
public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, | |
RouteDirection routeDirection) | |
{ | |
string url = httpContext.Request.Headers["HOST"]; | |
int index = url.IndexOf(".", System.StringComparison.Ordinal); | |
if (index < 0) | |
{ | |
return false; | |
} | |
string sub = url.Split('.')[0]; | |
if (sub == "www" || sub == "yourdomainname" || sub == "mail" /* || sub = "some-blacklist-subdomain" */) | |
{ | |
return false; | |
} | |
//Add a custom parameter named "user". Anythink you like :) | |
values.Add("subdomainAsAParameter", sub); | |
return true; | |
} | |
} |
How can i use this ? are there any project for this ?
Please give any one example.
I have created one project and creating multiple subdomain based on our requirement.
Hi,
I am trying to create sub directory base on ip address,
For example, my current website is www.nextan.biz, as my company expending business to following countryies, Australia, Singapore and Japan. So, i want to create url likes
www.nextan.biz/au/
www.nextan.biz/sg/
www.nextan.biz/jp/
I tried, to modify
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "welcome", action = "Index", id = UrlParameter.Optional}
);
routes.MapRoute(
name: "LocalizedDefault",
url: "{countrycode}/{controller}/{action}/{id}",
defaults: new { controller = "welcome", action = "Index", id = UrlParameter.Optional },
constraints: new { countrycode = "sg" }
);
countrycode - will change base on the client IP Address, but it is not working for me.
can you please help me to share some ideas.
Thank you
See also http://j.mp/MVCRoutingByDomainSegment