Ubuntu
Nginx 嵌入式變數 - 如何獲取請求中使用的域名?
一台伺服器使用多個域名時,如何獲取請求中目前使用的域名?我在它的配置文件中使用了 Nginx 的嵌入式變數。
我已經設置了 OpenSSL 並有一個重定向適用於我的第一個域,因為如您所見,我在配置文件的底部明確地重定向到它。因此,任何其他域上的 HTTP 請求都會重定向到第一個域以進行安全連接。是否有一個我可以使用的嵌入變數,例如,類似於
$request_uri
,但只返回客戶端使用的給定域名?這是我正在執行重定向的伺服器塊。
server { listen 80; listen [::]:80; server_name example.com example1.com example2.com example3.com; location / { return 301 https://example.com$request_uri; } }
請求中使用的域名基本上是主機請求標頭。在 nginx 中,主機頭的變數是 $host。因此,如果您想根據域名/主機重定向,您應該將配置更改為:
return 301 https://$host$request_uri;
希望這有幫助。謝謝