我在网站上有土耳其语和英语之间的语言切换。问题是,假设用户在http://en.fastercv.com/is-ilanlari
这样的页面上。如果他点击土耳其国旗,他曾经被重定向到主页:http://www.fastercv.com
而不是http://www.fastercv.com/is-ilanlari
。我使用下面的代码对其进行了整理:
if (Request.UrlReferrer!=null)
{
string prevPage = Request.UrlReferrer.ToString();
string prevUrl = Request.UrlReferrer.ToString();
Uri uri = new Uri(prevUrl);
string prevPath = uri.PathAndQuery;
if (uri.Host == "en.fastercv.com")
{
Response.Redirect("http://www.fastercv.com" + prevPath);
}
}
现在问题是,当他在主页上时,如果他点击语言标志,它似乎进入无限循环。页面永远不会加载。在Firefox上它说:Firefox has detected that the server is redirecting the request for this address in a way that will never complete. This problem can sometimes be caused by disabling or refusing to accept cookies.
它只发生在主页上。我怀疑if检查上的uri.Host
位。它是ASP.NET-MVC。
答案 0 :(得分:0)
找出原因。如果网址没有"路径和查询",则Index()方法始终重新开始。重写了if条件:
if (uri.Host == "en.fastercv.com" && uri.PathAndQuery!="/")
{
Response.Redirect("http://www.fastercv.com" + prevPath);
}