.htaccess 如何使用标题为301的Errordocument 404?

.htaccess 如何使用标题为301的Errordocument 404?,.htaccess,redirect,http-status-code-404,.htaccess,Redirect,Http Status Code 404,我有一个动态内容网站,我想重定向所有不存在的页面到索引页面,但标题显示301永久重定向,而不是404错误 我知道我可以使用.htaccess重定向 Errordocument 404 /index.php 但这将在标题中显示404状态,我希望标题显示301重定向 这可能吗?首先,你不应该。如果未找到某些内容,服务器应返回404;仅当内容已移动时,才应返回301 也就是说,这是可能的,使用 这应该将对不是文件或目录的URI的请求重定向到index.php,并带有301头 但话说回来,不要。它肯定

我有一个动态内容网站,我想重定向所有不存在的页面到索引页面,但标题显示301永久重定向,而不是404错误

我知道我可以使用.htaccess重定向

Errordocument 404 /index.php
但这将在标题中显示404状态,我希望标题显示301重定向


这可能吗?首先,你不应该。如果未找到某些内容,服务器应返回404;仅当内容已移动时,才应返回301

也就是说,这是可能的,使用

这应该将对不是文件或目录的URI的请求重定向到index.php,并带有301头


但话说回来,不要。它肯定会混淆人类访问者和搜索引擎。

为什么你希望你的网站显示301而不是404。404表示找不到该页。这正是您所描述的情况。问题是每天都有数千个页面被创建并从网站上删除,所以我不想通过将它们发送到错误页面而失去对浏览者的关注。浏览者不关心标题中的404状态…只是注意到一些页面,如www.domain.com/noneeee.html将出现404错误。看起来像这是htaccess中的scrips重写规则造成的。嗯,很难从远处调试东西,因为我对你的网站一无所知。如果您在htaccess中有其他重写规则,那么这些规则就不能很好地发挥作用
/index.php
而不是
index.php
可能会有所帮助,具体取决于htaccess的位置。这些重定向由脚本使用。重写cond%{REQUEST_FILENAME}-f RewriteRule^(.*).html$index.php?qwerty_query=$1.html&%{query_STRING}[L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [R=301]