I'm having some problems when the user wants to move to action games between domains. Organized at the local version of this:
mysite.com/subdomain1/webpage/show?url=about
mysite.com/subdomain2/webpage/show?url=about
Globally:
subdomain1.mysite.com/webpage/show?url=about
subdomain2.mysite.com/webpage/show?url=about
I want to make the user does not enter the main subdomain every time.
For example:
Current page - subdomain1.mysite.com/webpage/show?url=about
.
I want to see into subdomain2
similar page.
I redirected user to subdomain2.mysite.com/
.
But i want to redirect user - subdomain2.mysite.com/webpage/show?url=about
without transition at subdomain2.mysite.com
How can do it in ASP MVC and C#?
public static string ReplaceSubdomain(this HttpRequest request)
{
var urlReferrer = request.UrlReferrer.AbsoluteUri != null ? request.UrlReferrer.AbsoluteUri : string.Empty;
// Get URl
var url = request.Url.AbsoluteUri;
#if DEBUG || APPS
// Search local subdomain
Regex child = new Regex(@"\b[0-9]?[.]?child[0-9]?");
// if this request consist of subdomain
if (child.IsMatch(urlReferrer) && child.IsMatch(url))
{
// select subdomain
var matchUrlRef = child.Match(urlReferrer).ToString();
var matchUrl = child.Match(url).ToString();
// if subdomain are not equals
if ((matchUrlRef != matchUrl))
{
// single out link after local subdomain
var urlRefSub = urlReferrer.Remove(0, urlReferrer.IndexOf(matchUrlRef) + matchUrlRef.Length);
var urlSub = urlReferrer.Remove(0, url.IndexOf(matchUrl) + matchUrl.Length);
// validate link query after subdomain
// if different url query - replace subdomain
if (urlReferrer.Length > urlSub.Length)
return urlReferrer.Replace(urlRefSub, urlSub);
}
}
return url;
#else
// Check if before page are existsand subdomain are equls
if (!SubDomainRoute.GetSubdomain(urlReferrer).Equals(SubDomainRoute.GetSubdomain(url)))
// if subdomain really exist for "child"
if (SubDomainRoute.GetSubdomain(urlReferrer).Contains("child")
&& SubDomainRoute.GetSubdomain(url).Contains("child"))
return url.Replace(SubDomainRoute.GetSubdomain(url),
SubDomainRoute.GetSubdomain(urlReferrer));
return request.Url.AbsoluteUri;
#endif
}
Sorry if i distract you and spend your time - I myself found the solution.