在Nginx中定义自定义404页面并返回404状态码,可以通过修改Nginx的配置文件来实现,以下是一个示例步骤:
1、创建自定义404页面:
创建一个自定义的404页面,可以创建一个名为custom_404.html
的文件,并将其放置在你的网站的根目录或一个合适的位置。
2、配置Nginx:
编辑你的Nginx配置文件(通常是/etc/nginx/nginx.conf
或者位于/etc/nginx/sitesavailable/
下的某个站点配置文件)。
3、添加错误页面配置:
在你的服务器块 (server block
) 内,使用error_page
指令来定义自定义的错误页面,并且确保它返回正确的HTTP状态码,以下是一个示例配置:
server { listen 80; server_name example.com; # 设置根目录 root /var/www/html; # 自定义404页面并返回404状态码 error_page 404 /custom_404.html; location = /custom_404.html { internal; } location / { try_files $uri $uri/ =404; } }
详细解释
1、root /var/www/html;:
设置网站的根目录。
2、error_page 404 /custom_404.html;:
当发生404错误时,将请求重定向到/custom_404.html
文件。
3、location = /custom_404.html { internal; }:
这个内部块 (internal block) 确保/custom_404.html
不会被客户端直接访问,只能通过Nginx内部的重定向来访问,这有助于防止搜索引擎索引该错误页面。
4、location / { ... }:
这是主要的请求处理块,用于处理所有其他请求。try_files
指令尝试按顺序查找文件或目录,如果找不到匹配项,则返回404状态码。
5、=404:
这是一个快捷方式,表示如果前面的条件都不满足,则返回404状态码。
重启Nginx
完成配置后,需要重新加载Nginx配置以使更改生效:
sudo systemctl reload nginx
或者,如果你是通过服务脚本管理的Nginx:
sudo service nginx reload
这样,当用户访问一个不存在的资源时,他们将会看到你自定义的404页面,并且浏览器会显示404状态码。