我在localhost上的多语言网站有一个简单的文件夹结构
Default.aspx
images
css
js
en/Default.aspx
en/ContactUs.aspx
....
ar/Default.aspx
ar/xxxxx.aspx
我面临的问题对我来说很奇怪。我有一个简单的代码来检查用户设置的浏览器语言,因此我将用户重定向到英语或阿拉伯语版本的网站。
无论我使用什么代码,它总是将我重定向到英文版的网站并执行en/Default.aspx
页面
即使对Default.aspx
页面中的所有代码进行评论,它仍会将其重定向到en/Default.aspx
页面。虽然它不应该做任何事情。
我已将Default.aspx设置为设为默认页面,但它没有任何区别。我删除了具有路由代码的global.asa
,我还删除了本地主机上与该网站相关的所有编译器代码,但它仍然在做同样的事情。
我检查过web.config文件没有任何问题。
即使删除了Default.aspx
页面,它也会将我重定向到en/Default.aspx
我对此问题感到沮丧。
我不确定是什么问题。我没有结果重新启动系统。
我正在使用visual studio 2010 for asp.net web form project。
http://localhost:49831/AlShindagah/
总是带我到以下网址
http://localhost:49831/AlShindagah/en/Default.aspx
我删除它之前的Default.aspx代码
public partial class DefaultMain : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//switch (Session["lang"].ToString().ToLower())
//{
// case "en-us":
// Response.RedirectPermanent("~/en/Default.aspx");
// break;
// case "ar-ae":
// Response.RedirectPermanent("~/ar/Default.aspx");
// break;
// default:
// Response.RedirectPermanent("~/en/Default.aspx");
// break;
//}
}
//// Localization and Globalization code
//protected override void InitializeCulture()
//{
// String lang = Request["Language"];
// Session["lang"] = Helper.DetectLanguage(lang);
// //Set Direction of page LTR/RTL
// if (Session["lang"] == "ar-AE")
// {
// Session["PageDIR"] = "rtl";
// }
// else
// {
// Session["PageDIR"] = "ltr";
// }
// base.InitializeCulture();
//}
}
答案 0 :(得分:1)
您之前使用的是Response.RedirectPermanent("~/en/Default.aspx");
。一个符合标准的浏览器会记住这一点并始终将您重定向到那里。
清除浏览器缓存,然后重试:)
作为旁注,请使用Redirect
代替RedirectPermanent
。如果我从浏览器访问www.mysite.com并访问www.mysite.com RedirectPermanent
,请访问www.myothersite.com,一个符合标准的浏览器会记住这一点以及将来对www.mysite的所有请求。 com,它会打电话给www.myothersite.com。