NginX - 如何根据 URI 文件类型将 404 重定向到不同位置

问题描述 投票:0回答:1

目前我的 nginx 配置中有这个:

error_page 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 421 422 423 424 425 426 428 429 431 451 500 501 502 503 504 505 506 507 508 510 511 /error.html;
    location = /error.html {
        root /usr/share/nginx/html;
                ssi on;
        internal;
        auth_basic off;
    }

每当出现上述任何错误时,都会显示 error.html 页面,从而完美地完成其工作。这适用于所有文件/URL。

我想要的是将 .HTML 404 错误页面重定向到索引,同时留下上面的代码来完成其余的工作。

例如,如果访问者访问 /some-inexistent-page.html(或 .htm、.asp 等),他们应该被重定向到网站的索引页面,而不是加载上面的默认 error.html。

可以两者兼得吗?怎么办?

nginx nginx-config custom-error-pages
1个回答
0
投票

您好,我已经在我的环境中测试了上述场景,以下配置工作正常。因此,只需添加 error_page 404 = /index.html; 就可以将 404 重定向到 index.html。

listen 80;
server_name domainname;

root /var/www/html;


error_page 400  401 402 403 405 406 407 408 409 410 411 412 413 414 415 416 417 418 421 422 423 424 425 426 428 429 431 451 /404.html;

location = /404.html {
    internal;
    root /usr/share/nginx/html; 
}


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

error_page 404 = /index.html;



location / {
    try_files $uri $uri/ =404;
}}
© www.soinside.com 2019 - 2024. All rights reserved.