在404错误上显示主页

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在404错误上显示主页相关的知识,希望对你有一定的参考价值。

我正在尝试将404请求重定向到我们网站的主页,这只是index.php。收到404错误消息的示例URL是此URL https://www.website.com/directory/page。我尝试将以下行添加到我的配置文件中:error_page 404 /index.php;。当我这样做时,我不再收到HTTPS请求的404。它显示我希望的主页。但我仍然在HTTP请求上收到404错误。关于如何让它在HTTP上工作的任何建议?

我目前正在运行nginx服务器。这是我配置文件的一部分:

server {
    server_name acme.com;
    return 301 $scheme://www.acme.com$request_uri;
}

server {
    listen 80;
    server_name www.acme.com;

    #BEGIN SSL
    listen 443 ssl;
    ssl_certificate /etc/nginx/ssl/acme.com.chained.crt;
    ssl_certificate_key /etc/nginx/ssl/acme.com.key;

    # Makes for the most secure connections
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;
    #END SSL

    root /usr/share/nginx/html;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ $uri.html $uri.php?$query_string;
    }

    error_page 404 /index.php;

    location ~ .php$ {
        try_files $uri =404;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

}
答案

您可以在error_page语句中更改响应代码。要返回PHP脚本生成的响应代码,请使用:

error_page 404 = /index.php;

有关详细信息,请参阅this document


或者,如果有问题的404响应是由您的第二个try_files语句生成的,请在那里添加/index.php。例如:

try_files $uri /index.php =404;

有关更多信息,请参阅this document

以上是关于在404错误上显示主页的主要内容,如果未能解决你的问题,请参考以下文章

Wordpress 404 在除主页外的所有页面上都找不到

CodeIgniter 路由和 404 自定义错误

Nginx:404错误时返回301重定向

如何使用 .htaccess 将错误 404 重定向到主页?

Wordpress为主页以外的所有页面提供404错误

为啥选项卡和片段不显示?