如何配置Nginx重定向并移除路径中的两个子目录?
Nginx重定向配置修改方案
要实现将https://example.com/abc/123/TOKEN重定向为https://example.com/TOKEN,需要通过正则匹配截取路径中的TOKEN部分,替换原有的return指令为rewrite规则,具体配置如下:
基础HTTP(80端口)配置
events {} http { server { listen 80 default_server; server_name _; # 匹配固定前缀/abc/123/,提取后续内容并重定向 rewrite ^/abc/123/(.*)$ https://example.com/$1 permanent; } }
补充HTTPS(443端口)配置
如果原请求是https://开头的HTTPS请求,还需要添加443端口的server块,并配置SSL证书:
events {} http { server { listen 80 default_server; server_name _; rewrite ^/abc/123/(.*)$ https://example.com/$1 permanent; } server { listen 443 ssl default_server; server_name _; # 替换为你的SSL证书和密钥实际路径 ssl_certificate /etc/nginx/certs/your-cert.crt; ssl_certificate_key /etc/nginx/certs/your-key.key; rewrite ^/abc/123/(.*)$ https://example.com/$1 permanent; } }
配置说明
rewrite ^/abc/123/(.*)$ https://example.com/$1 permanent;:^/abc/123/(.*)$是正则匹配规则,^匹配路径起始位置,(.*)捕获/abc/123/之后的所有内容(即TOKEN部分)$1引用前面捕获组的内容,拼接成目标URLpermanent对应301永久重定向,和原配置的重定向类型一致
内容的提问来源于stack exchange,提问作者Marcus
相关产品推荐
相关产品推荐

