我正在运行一个asp.net网络应用程序,对于搜索引擎优化,我希望我购买的任何域名301重定向到我的首选域名。
出于测试目的,我在我的localhost项目中添加了一个Global.asax页面,并添加了以下代码:
protected void Application_PreRequestHandlerExecute(Object sender, EventArgs e)
{
string currentUrl = HttpContext.Current.Request.Url.ToString();
if(!currentUrl.StartsWith("http://www.mydomain.org"))
{
string strStart = currentUrl.Substring(0, currentUrl.indexOf(@"/Pages"));
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location", currentUrl.Replace(strStart, "http://www.mydomain.org"));
Response.End();
}
}
我用我当前的一个域名替换了“http://www.mydomain.org”。这一切都按照我的意愿运行。但是,现在当我从.asax文件中删除该代码,甚至完全删除asax文件时,仍会运行该代码片段。因此,有效地运行我的localhost项目会打开我的在线网站,我无法阻止这种行为。
我做了以下事情:
虽然这是我最终想要的行为,但我想在第一次实现它之后运行,调试和编辑它。我以前见过同样的问题,但似乎是通过上述方法之一修复的。请帮忙!
答案 0 :(得分:3)
您的问题与您的代码无关。这是你正在努力的301的缓存。
301的缓存可能发生在您的请求通过的许多地方,从您的浏览器开始,由于这个原因,行为可能变得无法预测