1

我需要为在 IIS 上运行的站点在一堆 html 页面上执行 410 Gone。是否有一种简单的方法可以一次完成所有操作,例如 htaccess 文件,还是我必须在 IIS 中一次完成一个?

4

1 回答 1

2

我这样做:

protected void Application_BeginRequest(Object sender, EventArgs e)
{
    if( listOf410urls.Contains(Request.RawUrl) )
    {
         Response.StatusCode = 410; Response.End();
    }
}

然后我在 webconfig system.webServer

<httpErrors errorMode="Custom" defaultResponseMode="ExecuteURL">
    <remove statusCode="410" subStatusCode="-1" />
    <error statusCode="410" path="/Error410.aspx" responseMode="ExecuteURL" />
</httpErrors>

这意味着所有返回 410 的页面都将被使用/Error410.aspx页面获取到用户和搜索引擎。

在 Error410.aspx 中我还设置Response.StatusCode = 410;了否则状态码将为 200 OK。

于 2012-11-02T10:56:45.280 回答