需要有關 NGINX 完整 URL 重定向重寫規則的幫助
我正在嘗試重定向一個完整的 URL,包括 URL 上的每個字元串。
我希望這個
http://www.SITE-A.com/everything?complete=url&fully=redirected
重定向到
http://www.SITE-B.com/everything?complete=url&fully=redirected
這適用於 apache 使用
RewriteRule ^/?$ "http\:\/\/www\.site-b\.com\/" [R=301,L]
我做了我在 serverfault 上找到的所有東西,但還沒有運氣。
我所能得到的總是這個重定向
http://www.SITE-A.com/everything?complete=url&fully=redirected
重定向到
http://www.SITE-B.com/?complete=url&fully=redirected
重定向後“一切”都消失了
我試過這些
location /quick-search { try_files $uri http://www.site-b.com/quick-search.php?$arg_q; }
和
location / { rewrite ^/(.*) http://www.site-b.com/$1 permanent; }
根據您的 Apache 重寫規則判斷,您正在嘗試為任何請求重寫主機部分。
使用 NGINX 實現此目的的一個常見習慣用法是使用
server
塊和return
.server { listen 80; server_name www.site-a.com; return 301 http://www.site-b.com$request_uri; } server { listen 80; server_name www.site-b.com; [...your config...] }
這是最快的方法,如突出顯示:https ://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/
位置指令不考慮查詢字元串(?之後的所有內容)。因此,您需要在 location 塊中單獨檢查這一點,可能使用 if 和 $args。