如何在Nginx中配置folder-a路径404时自动重定向到folder-b对应路径
Nginx 404跳转配置方案
以下配置可以实现/folder-a下资源404时自动跳转到/folder-b对应路径的需求:
完整配置示例
你需要将以下规则添加到对应站点的server配置块中:
server { listen 80; server_name 你的站点域名/IP; root 站点根目录; # folder-a和folder-b所在的上级目录路径 # 匹配所有/folder-a/开头的请求 location ^~ /folder-a/ { # 捕获404状态,交给自定义命名location处理 error_page 404 = @redirect_to_folder_b; } # 处理重定向逻辑的命名location location @redirect_to_folder_b { # 提取路径后缀拼接到/folder-b/后,301永久重定向 rewrite ^/folder-a/(.*)$ /folder-b/$1 permanent; # 如果需要临时重定向,将permanent改为redirect即可 } # 其余原有配置保持不变即可 }
配置说明
^~ /folder-a/属于前缀匹配,优先级高于正则匹配,保证所有/folder-a/开头的请求都会命中该规则error_page 404 = @redirect_to_folder_b表示仅当/folder-a下的资源不存在返回404时,才会触发重定向逻辑,资源存在时正常返回- 如果你不需要改变用户地址栏的路径,可以将rewrite行修改为
rewrite ^/folder-a/(.*)$ /folder-b/$1 break;实现内部跳转,用户无感知
生效方式
修改配置后执行nginx -t检查语法是否正确,确认返回test is successful后执行nginx -s reload重载配置即可生效。
内容的提问来源于stack exchange,提问作者Hacker
相关产品推荐
相关产品推荐

