我有这个场景,我的网站 www.skinb5.com 应该重定向到 www.skinb5.com/au/
和 www.skinb5.com/au 应该直接去 www.skinb5.com/au 和 www.skinb5.com/us
应该去 www.skinb5.com/us。
www.skinb5.com 是一个父站点,除了重定向之外几乎什么都不做。/au/ 和 /us/ 是位于它下面的子站点。
请在我的父站点中查看我的 Global.asax 文件,其中唯一的重定向发生。
问题是当我去 www.skinb5.com/us/ 它返回 200 这很好。但
www.skinb5.com/au/ 它返回 302 到 www.skinb5.com/au/。虽然它没有进入无限循环,但我担心它为什么返回 302。
你可能想在这里测试http://www.internetofficer.com/seo-tool/redirect-check/
我的问题是,当我直接调用 www.skinb5.com/au/ 时,会调用父站点中的 application_beginRequest 吗?不应该直接去子站点吗?如果是这样,302 重定向是如何发生的。
protected void Application_BeginRequest(object sender, EventArgs e)
{
var redirectSite = "au";
HttpCookie languageCookie = HttpContext.Current.Request.Cookies.Get("Customer.SelectLanguageID");
if (languageCookie != null)
{
redirectSite = languageCookie.Value.Split('-')[1];
}
string rawUrl = HttpContext.Current.Request.RawUrl;
if (string.IsNullOrEmpty(rawUrl))
{
rawUrl = "/";
}
rawUrl = redirectSite + rawUrl;
bool useSsl = IsCurrentConnectionSecured();
var storeHost = GetStoreHost(useSsl);
if (storeHost.EndsWith("/"))
storeHost = storeHost.Substring(0, storeHost.Length - 1);
string url = storeHost + '/' + rawUrl;
url = url.ToLowerInvariant();
HttpContext.Current.Response.Redirect(url, true);
HttpContext.Current.Response.End();
}