Nginx 配置 https 后,http 強(qiáng)制跳轉(zhuǎn)到 https,主域名跳轉(zhuǎn)至帶 www 的二級域名

  • 為了隨主流,即大多數(shù)人的習(xí)慣,訪問時網(wǎng)站時,域名隨時保持帶 www 的二級域名 www.lovesofttech.com。
  • 另外,網(wǎng)站的統(tǒng)計也是基于二級域名 www.lovesofttech.com 的,同時為了搜索引擎優(yōu)化,訪問 lovesofttech.com 時需要跳轉(zhuǎn)到 www.lovesofttech.com。
  • 網(wǎng)站開通了 ssl 證書,需要將 http 強(qiáng)制跳轉(zhuǎn)至 https。

完整配置內(nèi)容

# 針對 http 協(xié)議,將 @ 記錄,即不帶 www 的主域名 http://lovesofttech.com 跳轉(zhuǎn)至帶 www 的二級域名 http://www.lovesofttech.com,域名后面的路徑以及參數(shù)保持不變
# 如果配置了 htts 協(xié)議的跳轉(zhuǎn),這個server配置可以不要。
server {
  listen 80;
  server_name lovesofttech.com;
  rewrite ^(.*)$ https://www.$server_name$1 permanent;
}

# 如果配置了上面的 http 協(xié)議的主域名 http://lovesofttech.com 跳轉(zhuǎn)至二級域名 https://www.lovesofttech.com,則下面這個server的配置可以把主域名 lovesofttech.com 去掉
server {
    listen 80;
    server_name  www.lovesofttech.com lovesofttech.com;
    rewrite ^(.*)$ https://$host$1 permanent;
}

# 以下 server 配置 ssl 協(xié)議,注意端口不再是80而是443 
server {
    listen 443;
    server_name  www.lovesofttech.com lovesofttech.com;
    charset utf-8;
    access_log  logs/lovesofttech.access.log;
    error_log   logs/lovesofttech.error.log;
    ssl on;
    ssl_certificate /usr/local/nginx/cert/2944536_www.lovesofttech.com.pem;
    ssl_certificate_key /usr/local/nginx/cert/2944536_www.lovesofttech.com.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;

    # 針對 https 協(xié)議,將 @ 記錄,即不帶 www 的主域名 https://lovesofttech.com 跳轉(zhuǎn)至帶 www 的二級域名 https://www.lovesofttech.com,域名后面的路徑以及參數(shù)保持不變
    if ($host != 'www.lovesofttech.com') {
        rewrite ^/(.*)$ https://www.lovesofttech.com/$1 permanent;
    }

    location / {
        root   /home/utomcat/gitCode/lovesoft/uncleAndyChen/public;
        index  index.html;
    }
}

后記

帶路徑時不會重定向

之前的主域名 http://lovesofttech.com 跳轉(zhuǎn)至帶 www 的二級域名 https://www.lovesofttech.com,是在阿里云的域名解析里做的,是一個域名重定向的配置。

域名重定向配置

可以設(shè)置301重定向,也可以設(shè)置成302重定向

這樣配置帶來的問題是,只有主頁 http://lovesofttech.com 才會重定向到 https://www.lovesofttech.com,帶路徑的文章如 https://lovesofttech.com/about/ 就不會重定向,而且顯示無法訪問。

在百度里搜索:site:lovesofttech.com,得到的結(jié)果,不帶 www 的主域名且?guī)窂降奈恼骆溄?,?https://lovesofttech.com/about/ ,均無法訪問。

解決

修改主域名解析配置為 A 記錄,記錄值直接指向服務(wù)器IP。


域名重定向配置

這樣配置之后,https://lovesofttech.com/about/ 這樣的鏈接已經(jīng)可以正常訪問了,但是不利于網(wǎng)站統(tǒng)計和搜索引擎優(yōu)化(時髦詞叫 SEO),所以,還需要通過 Nginx 配置來重定向。

沒有開通 ssl 證書的重定向配置

server {
  listen 80;
  server_name lovesofttech.com;
  rewrite ^(.*)$ https://www.$server_name$1 permanent;
}

開通了 ssl 證書的重定向配置

修改監(jiān)聽 443 端口的 server 配置,在 location 配置前面加上:

    if ($host != 'www.lovesofttech.com') {
        rewrite ^/(.*)$ https://www.lovesofttech.com/$1 permanent;
    }

具體可參考上面的完整配置內(nèi)容。

關(guān)于作者

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容