我正在使用 LetsEncrypt ssl。當我使用domain.com訪問網站時,它被重定向到https://domain.com但我想要https://www.domain.com!
我在 dns 面板中新增了 www 作為 domain.com 的別名,以便透過 www 存取網站。但現在我得到了雙重重定向。
第一個重定向:domain.com 到 https://domain.com,第二個重定向:https://domain.com 到 https://www.domain.com
我想透過單一 301 重定向來實現這一點。已經嘗試了SF中給出的多種解決方案。但沒有成功。有人知道嗎?
答案1
假設您有權存取 nginx 配置,且您的 LetsEncrypt 憑證包含 domain.com 和 www.domain.com,則類似以下內容應該有效:
server {
listen 80;
server_name www.domain.com;
return 301 https://www.domain.com$request_uri;
}
server {
listen 80;
listen 443 ssl;
server_name domain.com;
ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;
return 301 https://www.domain.com$request_uri;
}
server {
listen 443 ssl;
server_name www.domain.com;
ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;
# the rest of your config
}
我認為 SSL 憑證需要包含兩個網域,因為在請求時https://domain.comdomain.com 的 SSL 握手發生在觸發 301 重定向之前。
我想您還可以為每個網域擁有單獨的證書,並相應地調整證書路徑。