Linux
使用 Nginx 規則將現有 API 請求重定向到新的 API 格式
Q1:我有一個在 sub1 子域上使用格式*https://sub1.domain.com/whatever?tes* t=yes的現有 API ,但現在我想切換到 sub2 子域和*https://sub2之類的格式.domain.com/v2/page/embed?new=1*
舊的請求應該仍然有效,但會被“轉發”或“重定向”到新的請求格式和不同的子域。理想情況下,這將無縫發生(透明地在幕後)並且不需要 cURL 跟隨重定向,除非它是不可避免的。
Q2:或者,我可以妥協於使用相同的格式回復對https://sub1.domain.com/whatever?tes t=yes 的 API 請求,但“轉發”或“重定向”到新的子域,例如https://sub2 .domain.com/whatever?test=yes
關鍵是 25,000 多名使用舊格式的使用者不必更新他們的程式碼以最終從 sub2 上的新伺服器獲得服務,並且最好使用新格式(無需維護兩組 API 參數)。
感謝您對此的支持。謝謝!
更新:
我可以自己找到答案。這將對將來的某人有所幫助。
對於第一季度:
location / { if ($arg_test ~* yes) { return 301 https://sub2.domain.com/v2/page/embed?new=1; } }
對於第二季度:
location / { if ($arg_test ~* yes) { rewrite ^(.*)$ https://sub2.domain.com$1; } }
我可以自己找到答案。這將對將來的某人有所幫助。
對於第一季度:
location / { if ($arg_test ~* yes) { return 301 https://sub2.domain.com/v2/page/embed?new=1; } }
對於第二季度:
location / { if ($arg_test ~* yes) { rewrite ^(.*)$ https://sub2.domain.com$1; } }
您可以使用:
server { # Permanent redirect to an individual page rewrite ^/oldpage$ newpage permanent; }