Nginx實現301跳轉至https的根域名展示
這篇文章主要介紹了使用Nginx實現301跳轉至https的根域名,文中透過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。 |
基於 SEO 和安全性的考量,需要進行 301 跳轉,以下使用 Nginx 作通用處理
需要將以下地址都統一跳轉到 https 的根域名
(不帶 www 的 http) (帶 www 的 http) (帶 www 的 https)
301 是永久重定向,302 是臨時跳轉,主要的區別在於搜尋引擎對此的對待方式
301:搜尋引擎會將權重和 PR 值進行轉移
302:搜尋引擎不會進行額外處理
現在是希望搜尋引擎認為原地址已經不存在了,完全轉移到新地址,所以使用 301
最簡單的方法是直接在 sever 中返回一個重定向的地址,中間再加上 301 狀態碼(否則預設為 302)
server { listen 80; return 301 }
return 和 rewrite 都屬於 Nginx 的重寫模組的指令,因為這裡不需要對路徑進行修改,所以用 return 會比較方便
$host 和$request_uri 都是 Nginx http 模組的嵌入變數,兩個變數合併一起就相當於把請求的 http:// 去掉的結果
這個只需在 https 中作處理,因為所有 http 都跳轉到 https 了
server { listen 443 ssl; server_name ~^(?www\.)?(.+)$; if ( $www ) { return 301 } ...
這裡利用了 server_name 的正則匹配功能,在其值前增加 ~ 即可啟用,支援 PCRE 語法
使用正則是為了確認是否有字首 www. 以及捕獲根域名,生成兩個變數,一個是具名捕獲變數 $www ,另一個是數值捕獲變數 $2
if 裡面不支援使用次序捕獲變數,否則會報錯( unknown "1" variable),所以增加了 ? 將 $1 的值賦給了 $www
減少跳轉次數
以上設定已經滿足了實現結果,但是有一點瑕疵,就是 會先跳轉到 , 再跳轉到 ,進行二次跳轉肯定是不如只需跳轉一次的,所以最好讓其直接一步到位,修改 http 的配置如下:
server { listen 80; server_name ~^(?:www\.)?(.+)$; return 301 }
在 http 對應的 sever 中,把 server_name 也改為正則模式,並將 $host 用捕獲的根域名 $1 取代
www 在這裡會直接棄掉,所以不需要捕獲,使用 ?: 標示實現只分組不捕獲,於是後面的根域名就成了 $1
這樣的結果是不管原來是否帶 www,都統一跳轉到不帶 www 的 https 根域名
以上配置中不需指定特定域名,可方便相容和移植,使用了 Nginx 的以下特性:
server_name 的正則匹配 return 指令接收狀態碼和地址 $host 和 $request_uri 嵌入變數
到此這篇關於使用Nginx實現301跳轉至https的根域名的文章就介紹到這了,更多相關Nginx 301跳轉至https根域名內容請搜尋 之家以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援!
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2690215/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- NGINX使用rewrite實現http 跳轉 httpsNginxHTTP
- php實現301跳轉PHP
- 網站域名部署ssl證書後,http怎樣做301跳轉到https網站HTTP
- Nginx 實現 Rewrite 跳轉Nginx
- Nginx 根據不同的域名來代理轉發內部主機-HTTP和HTTPSNginxHTTP
- IIS伺服器配置網站301重定向實現不帶www域名跳轉到帶www域名方法伺服器網站
- IIS6配置301跳轉到https的教程步驟HTTP
- url跳轉的兩種實現方式 域名 80埠占用
- 使用CDN導致301跳轉失敗(主域名、泛解析)的解決方案
- nginx實現網站url帶參跳轉Nginx網站
- Nginx301和apache重定向域名規則方法(多個域名,單個域名)NginxApache
- Nginx的https配置記錄以及http強制跳轉到https的方法梳理NginxHTTP
- 分享一個session過期後根據guard跳轉的實現Session
- Nginx根據PC端和手機端跳轉不同的路徑Nginx
- iOS Universal Links實現微信內網頁跳轉至App的方案iOS內網網頁APP
- 域名怎樣跳轉防封 微信域名跳轉防封技術揭秘
- 爬蟲實現:根據IP地址反查域名爬蟲
- Google用nginx/0.6.35實現.cn到.com.hk的跳轉?GoNginx
- 從301跳轉看vue-router的hash模式Vue模式
- Azure上通過haproxy實現APP Gateway或WAF的http跳轉httpsAPPGatewayHTTP
- Nginx的安裝和多域名配置的實現方法Nginx
- DNS二級域名自動跳轉 代替新網的跳轉功能DNS
- Nginx 跳轉規則Nginx
- 根據userAgent實現跳轉到移動或者pc頁面程式碼
- [提問交流]求助,後臺跳轉至前臺,如何實現,謝謝
- nginx開啟HSTS讓瀏覽器強制跳轉HTTPS訪問Nginx瀏覽器HTTP
- 微信域名防封系統之微信跳轉外部瀏覽器實現方案瀏覽器
- 伺服器多站點多域名HTTPS實現伺服器HTTP
- 域名從www跳轉到非www,Apache和Nginx2種解決方式ApacheNginx
- PHP頁面跳轉如何實現延時跳轉PHP
- Nginx配置域名同時支援 https 和 http 訪問NginxHTTP
- 根域名的知識
- Nginx 設定域名轉向配置Nginx
- 完美解決瀏覽器輸入http被自動跳轉至https問題瀏覽器HTTP
- intent實現apk之間的跳轉IntentAPK
- Nginx透過https方式反向代理的簡單實現NginxHTTP
- 實現登入url跳轉
- unity實現場景跳轉Unity