我需要在一堆 html 页面上为在 IIS 上运行的网站做一个 410 Gone 。有没有一种简单的方法可以一次完成所有操作,例如 htaccess 文件,还是我必须在 IIS 中一次执行一个?
我是这样做的:
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。