【问题标题】:Get URL and redirect before page load在页面加载之前获取 URL 和重定向
【发布时间】:2014-04-08 17:13:04
【问题描述】:

所以,我有一个有趣的情况。我一直在努力重新组织网站上的目录。我更新了旧文件,其中大约有 100 个,它们位于新位置。旧文件已被删除。

我遇到的问题是可能有数百人将书签直接指向旧文件的 URL。 (例如“wahwah.com/subSite/pdfs/something.pdf”)这些文件已有 5 年历史,因此无论如何他们都需要找到新文件。

因此,除了为每个单独的文件设置一个页面之外,我是否可以在用于存放文件的目录中包含一些东西来监视该 URL 并重定向到新页面?

它会监视“wahwah.com/subSite/pdfs..”并重定向。或者可能在这个子站点的主目录中监视 URL 以在其中包含 /pdf 路径。

我知道我可以在 java 脚本中获取 URL,但这对我没有帮助,除非我能做到我上面所说的。我不确定我是否可以在 .NET 中做到这一点。我们的服务器支持 .NET,因为我们的大多数站点应用程序都是用它制作的,但我不处理这些。我不能使用PHP,服务器不使用它。

我希望 JavaScript 能够以某种方式做到这一点,但这是我以前从未尝试过的东西,所以只是想一想我不确定我是否可以。我不太喜欢使用 JS 库,所以我不确定那里有什么我一直在搜索。

我找到了 Grunt,但我还不完全确定它是如何工作的。只是环顾四周,也许是文件过滤器或 matchBase。或一些全局模式。

【问题讨论】:

    标签: javascript asp.net web


    【解决方案1】:

    如果您可以访问服务器,最好的选择是在 wahwah.com/subSite/pdfs/ 目录中设置重定向。
    如何执行此操作取决于您使用的是 IIS 还是 unix。

    【讨论】:

      【解决方案2】:

      在 asp.net 中,301 重定向相当有效。

      if (HttpContext.Contains("http://old.aspx"))
          {
              HttpContext.Current.Response.Status = "301 Moved Permanently";
              HttpContext.Current.Response.AddHeader("http://www.new.aspx");
          }
      

      或者在页面加载中你可以写:

      Response.Status = "301 Moved Permanently";
      Response.AddHeader("Location","http://new.aspx");
      

      【讨论】:

      • 我会把这样的东西放在哪里?在包含子站点或旧文件目录的目录中的单独文件中?
      • @MGHandy 由于您使用的是 ASP.net,我假设您使用的是 IIS。第一个应该放在 global.asax 中,特别是在 Application_BeginRequest 或 Application_Start 中。在第二个中,每个都必须在旧网页的加载事件中。
      • 大约有 100 个旧文件。我需要另一种方法将所有这些路径重定向到新页面。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-24
      • 2021-10-25
      • 1970-01-01
      • 1970-01-01
      • 2020-09-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多