【问题标题】:I would like to 410 an entire directory - I deleted my blog我想 410 整个目录 - 我删除了我的博客
【发布时间】:2012-01-22 20:46:25
【问题描述】:

我的网站上有一个名为 blog 的文件夹。 我将其全部永久删除。 我想410吧。 我如何 410 整个文件夹?

例如我的网站看起来像这样

example.com/blog/mycoolpost1/
example.com/blog/mycoolpost2/
example.com/blog/mycoolpost3/
example.com/blog/mycoolpost4/

现在帖子 1,2,3,4 已死。

那么我如何指定博客之后的所有内容都被永久删除。 (以及文件夹“博客”本身)

我需要一个类似这样的 htaccess 行...?

重定向 410 /blog/?(.*)

【问题讨论】:

  • 这与任何方式、形状或形式的编程有什么关系?
  • 不是。我正在投票迁移到旧金山。
  • 编写逻辑 .htaccess 文件是编程。这是编程,直接点。

标签: .htaccess http-status-code-410


【解决方案1】:

Redirect directive 是执行此操作的正确方法。您应该在虚拟主机配置中添加以下内容:

Redirect 410 /blog

如果你无权访问虚拟主机配置,你可以把它放在你的文档根目录下的.htaccess文件中,或者我相信你可以把下面的内容放在blog中的.htaccess文件中子目录:

Redirect 410 /

(我可能对此不以为然,我不确定Redirect.htaccess 文件中的路径解析究竟是如何交互的)

【讨论】:

  • 谢谢我刚刚做了这个,这很有效:redirect 410 /blog
  • @BobbySmith 如果此答案对您有用,请不要忘记将其标记为已接受。
【解决方案2】:

我不认为Redirect 是正确的工具,因为它只匹配指定的路径。只需使用:

RewriteEngine On
RewriteBase /
RewriteRule ^blog/ - [G]

【讨论】:

    【解决方案3】:

    以下 .htaccess 会很有用,例如,当您从一个主机移到另一个主机并重新排序或删除您的网络的某些部分时。

    由于 Apache 允许人类语法代码,我使用 permanent 而不是 301 代码,以及 gone 而不是 410。您可以在此处查看 http 协议代码Status Code Definitions

    我将文件放在我的根 mynewblogaddress.com 文件夹中:

    .htaccess

    Redirect permanent /wordpress http://www.mynewblogaddress.com/blog/
    Redirect gone /gallery2   
    Redirect permanent /directory2 http://directory2.mynewblogaddress.com
    

    【讨论】:

      【解决方案4】:

      您可以在 .htaccess 中设置重写规则,以将包含死文件夹“blog”的所有 URL 重定向到自定义的“不存在”错误页面或其他任何内容。如果您想要实际代码,那么我建议您阅读guide-url-rewriting 来帮助您解决这个问题。

      【讨论】:

      • 对,但我找不到正确的行。像这样的东西,但这不是workign:redirect 410 /blog/?(.*)
      • 我会使用这样的东西:RewriteRule ^blog/(.)*$ error.php [NC,L]。它可能不是确切的语法,因为我使用重写已经有一段时间了,但是这样的东西应该可以工作。
      【解决方案5】:

      对于那些使用 IIS(7 或更高版本)并像我一样偶然发现这篇文章的人,这就是我最终使用 global.asax 的方式:

      void Application_BeginRequest(object sender, EventArgs e)
      {
          HttpApplication app = sender as HttpApplication;
      
          if (app.Request.Url.PathAndQuery.IndexOf("/mydirectory") > -1)
          {
              Response.StatusCode = 410; Response.End();
          }
      }
      

      我碰巧正在查找目录中的所有页面,但我可以做类似的事情,比如定位所有 html 页面(假设 410 处理所有 html 页面都将“消失”)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-06-16
        • 2018-08-06
        • 2022-12-03
        • 1970-01-01
        • 2022-01-13
        • 1970-01-01
        • 2019-02-14
        • 1970-01-01
        相关资源
        最近更新 更多