0

Nginx 重定向问号自动处理技巧

2026.05.27 | youres | 11次围观

浠€涔堟槸 Nginx 閲嶅畾鍚戜腑鐨勯棶鍙凤紵

鍦?Nginx 鐨?rewrite 鎸囦护閲岋紝闂彿 ? 鏈夌壒娈婄殑銆屾埅鏂€嶅惈涔夈€傚緢澶氫汉绗竴娆¢亣鍒版椂閮戒細鎳碉細鏄庢槑鎯冲尮閰嶅甫闂彿鐨?URL锛岀粨鏋滀竴鍐欒繘鍘伙紝鍙傛暟鍏ㄦ病浜嗐€?/p>

鍏堢粰缁撹锛?strong>鍦?Nginx rewrite 鐨勬浛鎹㈠瓧绗︿覆锛堝彸渚э級閲岋紝闂彿鐢ㄦ潵鍒嗛殧銆岄噸鍐欏悗鐨勮矾寰勩€嶅拰銆岄噸鍐欏悗鐨勬煡璇㈠瓧绗︿覆銆?/strong>銆傚畠涓嶆槸涓€涓櫘閫氬瓧绗︼紝鑰屾槸涓€涓搷浣滅銆?/p>

闂彿鐨勪袱绉嶅満鏅?/h2>

瑕佹悶娓呮闂彿鐨勮涓猴紝蹇呴』鍒嗘竻妤氬畠鍦ㄥ摢涓綅缃細

1. 鍦ㄦ鍒欏尮閰嶉噷锛堝乏杈癸級鈥斺€?灏辨槸鏅€氬瓧绗?/h3>
if ($request_uri ~* "^/search\?q=(.*)$") {
    set $keyword $1;
}

杩欓噷闂彿灏辨槸瀛楅潰鎰忎箟涓婄殑 ?锛岄渶瑕佺敤 \? 杞箟鏉ュ尮閰嶏紝鎴栬€呯洿鎺ュ啓杩涙鍒欙紙鍙栧喅浜庡啓娉曪級銆傝繖涓満鏅棶鍙锋病鏈夌壒娈婂惈涔夛紝鎸夌収姝e垯瑙勫垯璧般€?/p>

2. 鍦ㄦ浛鎹㈠瓧绗︿覆閲岋紙鍙宠竟锛夆€斺€?鐗规畩鎴柇绗?/h3>
rewrite ^/old-path$ /new-path?foo=1 last;

杩欓噷鐨??foo=1 涓嶆槸銆屽湪 URL 鍚庨潰鎷兼帴鍙傛暟銆嶏紝鑰屾槸銆屾妸閲嶅啓鍚庣殑鏌ヨ瀛楃涓茶缃负 foo=1銆?/strong>銆傚師鏉ヨ姹傞噷甯︾殑鍙傛暟浼氳涓㈠純銆?/p>

杩欏氨鏄渶瀹规槗琚潙鐨勫湴鏂广€?/p>

闂彿浼氳鐩栧師鍙傛暟鈥斺€旇繖鏄粯璁よ涓?/h2>

鐪嬭繖涓緥瀛愶細

# 璁块棶 /article?id=100
rewrite ^/article$ /post?new_id=200 last;

鐢ㄦ埛璁块棶 /article?id=100锛岀粡杩囪繖鏉?rewrite 鍚庯紝瀹為檯杞彂鍒板悗绔殑鏄?/post?new_id=200銆?code>id=100 娌′簡銆?/p>

鍘熷洜锛氭浛鎹㈠瓧绗︿覆閲屽嚭鐜颁簡 ?锛孨ginx 灏辫涓恒€屼綘瑕佹樉寮忔寚瀹氭煡璇㈠瓧绗︿覆銆嶏紝鍘熸潵鐨?$args 涓嶅啀鑷姩闄勫姞銆?/p>

濡備綍淇濈暀鍘熷弬鏁帮紵涓夌鏂规硶

鏂规硶涓€锛氫笉鐢ㄩ棶鍙凤紝璁?Nginx 鑷姩闄勫姞

rewrite ^/old$ /new last;

鏇挎崲瀛楃涓查噷娌℃湁 ?锛孨ginx 浼氳嚜鍔ㄦ妸鍘熷璇锋眰鐨勬煡璇㈠弬鏁伴檮鍔犲埌 /new 鍚庨潰銆傝繖鏄渶鐪佸績鐨勫啓娉曘€?/p>

鏂规硶浜岋細鐢?$args 鏄惧紡鎷兼帴

rewrite ^/old$ /new?$args last;

$args 鏄?Nginx 鍐呯疆鍙橀噺锛屽€兼槸鍘熷璇锋眰鐨勬煡璇㈠瓧绗︿覆锛堜笉鍚棶鍙凤級銆傝繖鏍峰啓锛屽師鍙傛暟灏变繚鐣欎笅鏉ヤ簡銆?/p>

濡傛灉鍘熻姹傛病鏈夊弬鏁帮紝$args 鏄┖瀛楃涓诧紝Nginx 浼氳嚜鍔ㄥ鐞嗭紝涓嶄細澶氬嚭涓€涓浣欑殑 ?銆?/p>

鏂规硶涓夛細鐢?$is_args$args 鎷兼帴锛堟洿涓ヨ皑锛?/h3>
rewrite ^/old$ /new${is_args}${args} last;

$is_args 鏄€屽鏋滃師璇锋眰鏈夊弬鏁帮紝鍊兼槸 ?锛涘惁鍒欐槸绌哄瓧绗︿覆銆嶃€傝繖鏍峰彲浠ョ簿纭帶鍒堕棶鍙风殑鍑虹幇鏃舵満銆?/p>

涓嶈繃鍦?rewrite 鐨勬浛鎹㈠瓧绗︿覆閲岋紝鐩存帴鐢??$args 閫氬父灏卞浜嗭紝Nginx 浼氬鐞嗙┖鍊兼儏鍐点€?/p>

闂彿鍦?rewrite 鍜?return 閲岀殑琛屼负宸紓

杩欐槸鍙︿竴涓鏄撴贩娣嗙殑鐐广€?/p>

rewrite锛氭浛鎹㈠瓧绗︿覆閲岀殑 ? 浼氳鐩栧師鍙傛暟锛屽涓婃墍杩般€?/p>

return锛?/p>

return 301 https://example.com/new;

return 鐨勯粯璁よ涓烘槸涓嶄繚鐣?/strong>鍘熸煡璇㈠弬鏁般€傚鏋滀綘鎯充繚鐣欙紝蹇呴』鏄惧紡鍐欒繘鍘伙細

return 301 https://example.com/new?$args;

鎵€浠ユ棤璁?rewrite 杩樻槸 return锛?strong>鎯充繚鐣欏師鍙傛暟锛岄兘瑕佷富鍔ㄦ嫾鎺?$args銆傚尯鍒湪浜庤娉曞舰寮忎笉鍚屻€?/p>

闂彿鐢ㄤ簬銆屾竻绌哄弬鏁般€嶇殑鍦烘櫙

鏈夋椂鍊欎綘灏辨槸鎯充涪寮冨師鍙傛暟锛岄棶鍙峰氨娲句笂鐢ㄥ満浜嗭細

# 寮哄埗涓㈠純鎵€鏈夋煡璇㈠弬鏁帮紝鍙繚鐣欒矾寰?rewrite ^(.*)$ $1? last;

$1? 鐨勬剰鎬濇槸锛氶噸鍐欏悗鐨勬煡璇㈠瓧绗︿覆涓虹┖銆傚師鍙傛暟琚竻绌恒€?/p>

杩欎釜鎶€宸у湪銆岄噸瀹氬悜鍚庝笉鎯虫妸鍐呴儴鍙傛暟鏆撮湶缁欏墠绔€嶆椂寰堟湁鐢ㄣ€?/p>

涓€涓畬鏁村疄鎴橀厤缃ず渚?/h2>

鍋囪浣犵殑缃戠珯鍋氫簡璺緞杩佺Щ锛屾棫璺緞 /product?id=123 瑕侀噸瀹氬悜鍒版柊璺緞 /item/123锛屽苟涓斾繚鐣欏叾浠栨煡璇㈠弬鏁帮細

location /product {
    rewrite ^/product$ /item/$arg_id? last;
}

杩欓噷鐢ㄤ簡 $arg_id锛圢ginx 鍐呯疆鍙橀噺锛岀洿鎺ュ彇鏌ヨ鍙傛暟閲?id 鐨勫€硷級锛屾妸 /product?id=123 閲嶅啓鍒?/item/123锛屽悓鏃跺師鍙傛暟琚涪寮冿紙鍥犱负鏇挎崲瀛楃涓查噷鏈??锛夈€?/p>

濡傛灉鎯充繚鐣欏叾浠栧弬鏁帮細

location /product {
    rewrite ^/product$ /item/$arg_id?$args last;
}

璋冭瘯鎶€宸э細纭闂彿鍒板簳骞蹭簡浠€涔?/h2>

闂彿鐨勮涓哄緢闅愯斀锛岄厤缃枃浠堕噷鐪嬩笉鍑烘潵闂锛岀嚎涓婁竴璺戝弬鏁板氨涓€傝皟璇曟柟娉曪細

鐢?log_format 鎵撳嵃閲嶅啓鍚庣殑 URL锛?/p>

log_format debug '$uri?$args -> $request_uri';
access_log /var/log/nginx/rewrite-debug.log debug;

鐢?curl 楠岃瘉锛?/p>

curl -v "http://your-site.com/old?foo=bar" 2>&1 | grep Location

鐪?Location 鍝嶅簲澶撮噷鍒板簳鏈夋病鏈夊弬鏁般€?/p>

甯歌閿欒鎬荤粨

  • 閿欒涓€锛氬湪 rewrite 鏇挎崲瀛楃涓查噷鍐欎簡 ?锛屽嵈鏈熸湜鍘熷弬鏁颁繚鐣?鈫?鐢??$args 淇
  • 閿欒浜?/strong>锛歳eturn 301 閲嶅畾鍚戝悗鍙傛暟涓㈠け 鈫?鏄惧紡鎷兼帴 ?$args
  • 閿欒涓?/strong>锛氭兂娓呯┖鍙傛暟鍗翠笉鐭ラ亾鐢?? 鎶€宸?鈫?rewrite ^(.*)$ $1? last;
  • 閿欒鍥?/strong>锛氬湪姝e垯鍖归厤閲屽繕浜嗛棶鍙烽渶瑕佽浆涔?鈫?鐢?\?

鍐呴摼鎺ㄨ崘

鍘熷垱鍐呭锛岃浆杞借娉ㄦ槑鍑哄銆傚鏈?Nginx 閰嶇疆闂锛屾杩庡湪璇勮鍖轰氦娴併€?/em>

版权声明

本文仅代表个人观点。
本文系AI辅助作者原创,未经许可,转载请保留原文链接。

发表评论