不存在的页面返回代码200

时间:2020-10-26 作者:Yushko Aleksandr

我有一个像mysite这样的页面。com/联系人/如果输入不存在的URL,如:

mysite.com/contacts--/
mysite.com/contacts%20/
我获得状态200,页面将打开mysite。com/联系人/尽管我输入:

mysite.com/contacts1/
正如所料,我得到了一个404错误。

如何在CMS级别实现错误处理,以便不存在的页面返回带有404错误模板的页面?可能有一些插件实现URL管理?

2 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

That\'s not what\'s happening, 当您访问时/contacts--/ 它不返回200代码,而是返回301 重定向代码。然后,浏览器将遵循此重定向并转到/contact 而且是/contact 返回200 密码

这是因为/contact 是该页面的规范URL,WordPress会立即重定向到规范页面以改进SEO。它还应该向包含规范URL的标头添加一个元标记,以避免重复的内容惩罚。

SO网友:Yushko Aleksandr

如果需要防止WordPress猜测URL,可以添加以下代码来实现此功能。php

function remove_redirect_guess_404_permalink( $redirect_url ) {
  if ( is_404() ) {
    return false;
  } //end if
  return $redirect_url;
} //end remove_redirect_guess_404_permalink()
add_filter( \'redirect_canonical\', \'remove_redirect_guess_404_permalink\' );

Link to article

相关推荐