gpt4 book ai didi

php - 如何自定义404错误页面(ubuntu nginx)

转载 作者:行者123 更新时间:2023-12-04 18:32:16 33 4
gpt4 key购买 nike

我目前正在建立自己的网站,我遇到的一件事是丑陋的 404 错误页面。我在 Ubuntu 上运行 LEMP 堆栈,所以我的默认错误页面是 nginx 页面。不用说,我不喜欢默认错误页面的外观,并且想更改它。我已经看到了如何做到这一点的各种方法,但其中很多都处理 Apache(可能相同)、.htaccess 等。

但是,我确信必须有一种更简单的方法来做到这一点。 404页面不就是一个我们应该可以编辑的简单的.html页面吗?如何在不使用其他人的情况下以最简单的方式编辑默认的 404 页面?

最佳答案

答案是肯定的,有一种简单的方法可以将 404 页面自定义为 HTML 文件,至少在 LEMP 堆栈上是这样。假设您没有重新组织“太多”文件,唯一需要做的就是创建一个文件。

解释:
如果你去/etc/nginx/sites-available/default.conf打开它,你会看到一个类似这样的 block :

server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;

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

# Make site accessible from http://localhost/
server_name localhost unaviamedia.ca;

location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}

error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}

location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}

.......

}

免责声明:
从这一行可以看出: root /usr/share/nginx/html; ,我的主目录是“ /usr/share/nginx/html”。如果您的不同,您将需要更改我提到的下一个文件路径。

注意这一行: error_page 404 /404.html; ,在页面的中间?这是您网站的 404 HTML 错误页面的路径。

解释:
  • error_page - 指定此行与 HTTP 错误页面有关。
  • 404 - 此页面将响应的特定 HTTP 错误代码。
  • /404.html - 文件的“root-relative”路径,包括文件名。
  • 如果您的根目录与上述不同,则需要更改此文件路径以反射(reflect)差异(如上所述)。

  • 然而 ,如果您转到上面的路径,您会注意到目录中没有该名称的文件。因此,将显示默认的 nginx 错误页面。

    要改变这一点,只需制作一个自定义 HTML 页面,该页面将成为您的 404 错误页面,并将其作为“404.html”保存在您的根目录中。然后,上述路径 ( error_page 404 /404.html;) 将能够在发生 404 错误时显示您的自定义页面。

    我相当确定您可以为您可能希望涵盖的任何其他 HTTP 错误代码添加必要的“error_page”行,或者将几个路由到同一个通用错误页面(但我没有尝试过)。此外,我相当确定其他服务器类型的设置将相同,但同样,我还没有尝试过。

    请让我知道这是否不正确(或可以做得更好),或者这是否会导致更远的意外问题。

    关于php - 如何自定义404错误页面(ubuntu nginx),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30536470/

    33 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com