婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 使用Nginx實現(xiàn)301跳轉(zhuǎn)至https的根域名示例代碼

使用Nginx實現(xiàn)301跳轉(zhuǎn)至https的根域名示例代碼

熱門標(biāo)簽:宜賓銷售外呼系統(tǒng)軟件 濰坊寒亭400電話辦理多少錢 外呼系統(tǒng)全國 四川保險智能外呼系統(tǒng) 高德地圖標(biāo)注公司需要錢 云南電商智能外呼系統(tǒng)哪家好 廈門防封電銷電話卡 地圖標(biāo)注能更改嗎 地圖標(biāo)注員有發(fā)展前景嗎

基于 SEO 和安全性的考量,需要進(jìn)行 301 跳轉(zhuǎn),以下使用 Nginx 作通用處理

實現(xiàn)結(jié)果

需要將以下地址都統(tǒng)一跳轉(zhuǎn)到 https 的根域名 https://chanvinxiao.com

  • http://chanvinxiao.com (不帶 www 的 http)
  • http://www.chanvinxiao.com (帶 www 的 http)
  • https://www.chanvinxiao.com (帶 www 的 https)

301 與 302 的區(qū)別

301 是永久重定向,302 是臨時跳轉(zhuǎn),主要的區(qū)別在于搜索引擎對此的對待方式

  1. 301:搜索引擎會將權(quán)重和 PR 值進(jìn)行轉(zhuǎn)移
  2. 302:搜索引擎不會進(jìn)行額外處理

現(xiàn)在是希望搜索引擎認(rèn)為原地址已經(jīng)不存在了,完全轉(zhuǎn)移到新地址,所以使用 301

http 跳轉(zhuǎn)到 https

最簡單的方法是直接在 sever 中返回一個重定向的地址,中間再加上 301 狀態(tài)碼(否則默認(rèn)為 302)

server {
 listen 80;
 return 301 https://$host$request_uri;
}
  • return 和 rewrite 都屬于 Nginx 的重寫模塊的指令,因為這里不需要對路徑進(jìn)行修改,所以用 return 會比較方便
  • $host 和$request_uri 都是 Nginx http 模塊的嵌入變量,兩個變量合并一起就相當(dāng)于把請求的 http:// 去掉的結(jié)果

www 跳轉(zhuǎn)到根域名

這個只需在 https 中作處理,因為所有 http 都跳轉(zhuǎn)到 https 了

server {
 listen 443 ssl;
 server_name ~^(?<www>www\.)?(.+)$;
 if ( $www ) {
 return 301 https://$2$request_uri;
 }
...
  • 這里利用了 server_name 的正則匹配功能,在其值前增加 ~ 即可啟用,支持 PCRE 語法
  • 使用正則是為了確認(rèn)是否有前綴 www. 以及捕獲根域名,生成兩個變量,一個是具名捕獲變量 $www ,另一個是數(shù)值捕獲變量 $2
  • if 里面不支持使用次序捕獲變量,否則會報錯( unknown "1" variable),所以增加了 ?<www> 將 $1 的值賦給了 $www

減少跳轉(zhuǎn)次數(shù)

以上設(shè)置已經(jīng)滿足了實現(xiàn)結(jié)果,但是有一點瑕疵,就是 http://www.chanvinxiao.com 會先跳轉(zhuǎn)到 https://www.chanvinxiao.com, 再跳轉(zhuǎn)到 https://chanvinxiao.com ,進(jìn)行二次跳轉(zhuǎn)肯定是不如只需跳轉(zhuǎn)一次的,所以最好讓其直接一步到位,修改 http 的配置如下:

server {
 listen 80;
 server_name ~^(?:www\.)?(.+)$;
 return 301 https://$1$request_uri;
}

在 http 對應(yīng)的 sever 中,把 server_name 也改為正則模式,并將 $host 用捕獲的根域名 $1 取代
www 在這里會直接棄掉,所以不需要捕獲,使用 ?: 標(biāo)示實現(xiàn)只分組不捕獲,于是后面的根域名就成了 $1
這樣的結(jié)果是不管原來是否帶 www,都統(tǒng)一跳轉(zhuǎn)到不帶 www 的 https 根域名

總結(jié)

以上配置中不需指定特定域名,可方便兼容和移植,使用了 Nginx 的以下特性:

  • server_name 的正則匹配
  • return 指令接收狀態(tài)碼和地址
  • $host 和 $request_uri 嵌入變量

到此這篇關(guān)于使用Nginx實現(xiàn)301跳轉(zhuǎn)至https的根域名的文章就介紹到這了,更多相關(guān)Nginx 301跳轉(zhuǎn)至https根域名內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

標(biāo)簽:滁州 湛江 巴彥淖爾 廊坊 紅河 德州 廣安 回訪

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《使用Nginx實現(xiàn)301跳轉(zhuǎn)至https的根域名示例代碼》,本文關(guān)鍵詞  使用,Nginx,實現(xiàn),301,跳,轉(zhuǎn)至,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《使用Nginx實現(xiàn)301跳轉(zhuǎn)至https的根域名示例代碼》相關(guān)的同類信息!
  • 本頁收集關(guān)于使用Nginx實現(xiàn)301跳轉(zhuǎn)至https的根域名示例代碼的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 海口市| 马鞍山市| 枣强县| 封丘县| 三原县| 米林县| 宽城| 富蕴县| 梨树县| 佛山市| 石首市| 长春市| 盐边县| 永州市| 虹口区| 乌拉特后旗| 高尔夫| 沁水县| 阿荣旗| 临沭县| 太谷县| 桦甸市| 理塘县| 内江市| 临潭县| 潢川县| 威海市| 墨竹工卡县| 临清市| 柯坪县| 田阳县| 章丘市| 桂林市| 厦门市| 马龙县| 邵阳县| 施甸县| 九江县| 宽甸| 时尚| 镇康县|