在 .htaccess 文件中,是否可以为 404 错误页面发送 410 状态代码,然后立即重定向到主页?
例如,当搜索引擎抓取一个 404 页面时,服务器会发送 410 状态码,然后重定向到首页。
在 .htaccess 文件中,是否可以为 404 错误页面发送 410 状态代码,然后立即重定向到主页?
例如,当搜索引擎抓取一个 404 页面时,服务器会发送 410 状态码,然后重定向到首页。
不,不可能在同一个响应中发送 4xx和重定向(即 3xx 状态)——如果这是有意的话。
410(或 404)响应是一种响应。3xx HTTP 重定向是另一种完全不同的响应。你做一个或另一个,而不是两者兼而有之。
无论如何,谷歌可能会将 3xx 重定向到主页视为软 404(因为它们通常是糟糕的用户体验)。
但是,您可以发送 410“已消失”状态而不是 404“未找到”。具体如何操作将取决于您的系统。例如,如果您有一个现有的 404 文档,那么在将响应发送到客户端时简单地覆盖 HTTP 状态可能会更容易。要在任何响应未映射到物理文件或目录时发送 410,您可以使用 mod_rewrite in 执行以下操作.htaccess
:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ - [G]