Nginx 404,500个错误和WordPress

时间:2018-11-03 作者:JoaMika

我已在服务器块中定义:

 server {

  error_page 401 403 404 /custom_404.html;
        location = /custom_404.html {
                root /var/www/html;
                internal;
        }

  error_page 500 502 503 504 /custom_50x.html;
        location = /custom_50x.html {
                root /var/www/html;
                internal;
        }

}
然而,每当出现404错误时,这不会通过Nginx,而是通过Wordpress重定向。

500个错误也会发生同样的情况。我在Nginx中定义的错误页面根本不显示。我得到默认的500个空白屏幕。

有什么想法吗?我相信我的代码是正确的。

1 个回复
最合适的回答,由SO网友:Remzi Cavdar 整理而成

Warning

在开始之前,我强烈建议您创建child theme 以安全地修改当前使用的主题。这样,如果您需要更新主题,您的更改将不会被覆盖

Modifying your current error page

如果主题已经有自定义错误页,请查找404.php 主题根目录中的文件(/wp-content/themes/your-theme/404.php) 并将其复制到子主题的文件夹中(/wp-content/themes/your-theme-child/404.php). 根据您的喜好进行修改

Creating an error page

如果您的主题没有设置404错误页,您可以创建一个,但您可以复制主题的page.php 文件到您的子主题目录并重命名它404.php (/wp-content/themes/your-theme-child/404.php) 并根据您的喜好进行修改

如果要覆盖任何其他类型的错误/HTTP状态码,请重复上述步骤,只需重命名文件以反映要创建的错误页类型,例如404.php403.php.

See a list of HTTP Status Codes:

如果您无法创建子主题或不想创建子主题,则始终可以使用插件:https://wordpress.org/plugins/404page/

Sources:


NGINXnot 我的专长是使用Apache。请容忍我:

# define error page
error_page 404 = @notfound;

# error page location redirect 302
location @notfound {
    return 404 /custom-error-page;
}
在php块中放置fastcgi_intercept_errors 设置为on

location ~ \\.php$ {
    include /etc/nginx/fastcgi_params;
    # intercept errors for 404 redirect
    fastcgi_intercept_errors on;
    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
有关更多信息,请参阅:https://guides.wp-bullet.com/nginx-redirect-404-errors-to-homepage-wordpress/

结束

相关推荐

WordPress和Nginx-固定链接不支持斜杠结尾

我在nginx配置文件中添加了这一行try_files $uri $uri/ /index.php?$args; rewrite ^([^.]*[^/])$ $1/ permanent; #adding slash permalinks工作正常,但在添加/(请参见重写规则如何添加)NGINX时会给我404错误。例如,SomeDomain。添加SlashHomeDomain后的com/post/ThisPermalink(工作)。com/post/ThisIsPermaLink/(给出40