在Wordpress中禁用404页面

时间:2018-07-17 22:34:39

标签: php wordpress

我希望用户键入任何URL,例如:

mywebsite.com/helloworld

之后,我想用PHP来塞子helloworld,并将其打印在页面上。

默认情况下,WordPress会显示404页。我的想法是禁用此页面,但不确定是否有更好的解决方案。

我该如何实现?

3 个答案:

答案 0 :(得分:1)

404是许多HTTP Status Codes之一,因此,如果完全删除页面,则需要在WordPress和Web服务器(例如Apache或Nginx)上都将其禁用。建议不要 ,因为它会使浏览器显示具有无法控制/不希望的响应的合法404。

如果您的问题是“默认/我的模板404页面很糟糕,我想更改它”,请参考Codex page on custom 404 page或使用众多旨在为错误页面模板的插件之一。

我个人也建议不要将错误页面定向到您选择的页面,例如您的主页。除了使人们感到困惑的是为什么example.com/helloworld转到example.com之外,这几乎没有什么作用。从程序员的角度来看,这可能会增加开发时间,因为您可能会发现很难诊断为什么,而不是将其引至404或{{ 1}},每个告诉您不同的信息。

答案 1 :(得分:1)

add_filter( 'pre_handle_404', function() {
    # you can do anything you want here but the easiest and safest is
    # wp_redirect( 'your url with query parameters from the failing 404 url' );
    # exit();
    return FALSE;
} );

答案 2 :(得分:0)

要退出@magenta,也可以为此添加条件。这就是我所做的:

add_action( 'pre_handle_404', function() {
    global $wp_query;

    if(!$wp_query->found_posts){
        if($wp_query->query['post_type']=="clients"){
            wp_redirect( '/login' );
            exit;
        }
    }

    return FALSE;
} );