0

我正在运行一个 asp.net Web 应用程序,为了优化搜索引擎,我希望将我购买的任何域名 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 项目会打开我的在线网站,我无法阻止这种行为。

我做了以下事情:

  • 删除“临时 ASP.NET 文件”文件夹中的所有内容
  • 删除了我的 /bin 文件夹和整个 /obj 文件夹中的 .dll
  • 清理并重建了我的解决方案。
  • 创建了一个全新的解决方案,然后向其中添加了文件。这最初是有效的,但随着 Global.asax 文件的添加,会发生相同的行为。

虽然这是我最终想要的行为,但我想在我第一次实现它之后运行、调试和编辑它。我以前见过同样的问题,但似乎是通过上述方法之一解决的。请帮忙!

4

1 回答 1

3

您的问题与您的代码无关。它是您正在努力解决的 301 的缓存。

301 的缓存可能会在您的请求通过过程中的许多地方发生,从您的浏览器开始,并且行为可能因此变得不可预测

于 2012-12-17T16:55:04.677 回答