12

我的网站上有一个名为 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/?(.*)

4

5 回答 5

12

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

Redirect 410 /blog

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

Redirect 410 /

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

于 2011-12-18T02:03:21.003 回答
10

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

RewriteEngine On
RewriteBase /
RewriteRule ^blog/ - [G]
于 2011-12-18T19:24:01.187 回答
5

例如,当您从一个主机移动到另一个主机并重新排序或删除部分 Web 时,以下.htaccess将很有用。

由于 Apache 允许人类语法代码,因此我使用了永久代码而不是 301 代码,并使用410 代码。您可以在此处查看 http 协议代码状态代码定义

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

.htaccess

Redirect permanent /wordpress http://www.mynewblogaddress.com/blog/
Redirect gone /gallery2   
Redirect permanent /directory2 http://directory2.mynewblogaddress.com
于 2012-09-19T08:08:12.937 回答
0

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

于 2011-12-18T01:22:18.653 回答
0

对于那些使用 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'ing ALL html 页面都“消失”了)

于 2013-02-06T20:55:54.077 回答