当用户想要转移到域之间的动作游戏时,我遇到了一些问题。 在本地版本中组织:
mysite.com/subdomain1/webpage/show?url=about
mysite.com/subdomain2/webpage/show?url=about
全局:
subdomain1.mysite.com/webpage/show?url=about
subdomain2.mysite.com/webpage/show?url=about
我想让用户每次都不进入主子域名。
例如:
当前页面 - subdomain1.mysite.com/webpage/show?url=about
。
我想查看 subdomain2
类似的页面。
我将用户重定向到subdomain2.mysite.com/
。
但我想重定向用户 - subdomain2.mysite.com/webpage/show?url=about
没有subdomain2.mysite.com
的过渡
如何在ASP MVC和C#中做到这一点?
答案 0 :(得分:1)
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 of clinic"
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
}
很抱歉,如果我分散您的注意力并花费您的时间 - 我自己找到了解决方案。
答案 1 :(得分:0)
如何在视图中创建链接(锚点)?如果使用ActionLink方法,则可以编写包装器方法,例如SubdomainActionLink,也可以这样做,但也插入" subdomain2"到href路径。如果你需要在代码隐藏中进行这样的重定向,只需获取当前的请求URL并替换子域号。