Nginxproxy_redirect允許使用諸如$my_var和 正則運算式之類的變數,前綴為~.
但將它們結合使用似乎是不可能的。這可能嗎,轉義元字符的正確語法是什么?
例如,我試過:
proxy_redirect ~*https?://\\$proxy_host/(.*)$ /app1/$1
proxy_redirect ~*https?://\$proxy_host/(.*)$ /app1/$1
proxy_redirect ~*https?://$proxy_host/(.*)$ /app1/$1
顯然,最后一個例子是不正確,因為$之前proxy_host被解釋為一個正則運算式元字符。但另外兩個例子也不起作用。(它們不被識別,所以不要重寫Location標題。
當我替換為
proxy_redirect ~*https?://[^/] /(.*)$ /app1/$1
重定向作業得很好。
問題是,即使對于外部重定向,這也會重定向,所以太包容了。
uj5u.com熱心網友回復:
變數和正則運算式是互斥的。
要匹配兩者http,https您可以只使用兩個連續的陳述句,例如:
proxy_redirect http://$proxy_host/ /app1/;
proxy_redirect https://$proxy_host/ /app1/;
匹配字串后面的任何內容都會自動附加到替換字串,因此不需要正則運算式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/376075.html
上一篇:在Nginx中使用條件鏡像
