1. 程式人生 > >設定Apache下HTTPS 自動跳轉為 HTTP

設定Apache下HTTPS 自動跳轉為 HTTP

還是跟HTTPS相關,因為HTTPS導致系統很慢,頻繁崩潰,於是,領導想了個招:能否設定讓HTTPS 自動跳轉為 HTTP。

網上一查,是可以的。 使用Apache的 rewrite_module模組。

再從網上信手找來幾條 rewrite_module 的指令,一配置,嘿,還真跳轉了。幸福來得那麼容易!但當出現問題時,卻是頭痛和懷疑不已,哪裡錯了,哪裡不對,是不是HTTPS自動跳轉為HTTP不對。這個時候,才在被逼的情況下,耐著性子去查一條條指令的具體用法。

Apache配置rewrite_module 的方法:

     1、取消註釋:LoadModule rewrite_module   (在Apache的配置檔案apache.conf中)
      2、.在<VirtualHost>內寫下列指令(因是HTTPS自動跳轉為HTTP,故在SSL配置檔案 ssl.conf 中配置)注意指令中需要空格的地方一定要空格。

              RewriteEngine On                                           #:此處是開關,一定要設定為On;當不需要進行跳轉時,可直接設定該指令為Off,而不需要註釋掉每行rewrite指令。
              RewriteLogLevel 3                                          #:日誌記錄級別,為0至8之間。當為0時,表示不記錄;

                                                                                          #:參考中說若不是為了除錯用,該值不要設定超過2,因為值過大,會比較影響系統性能。
              RewriteLog "D:\www\logs\rewrite.log"        #:日誌記錄的目錄 
              RewriteCond %{HTTP_HOST} !127.0.0.1
              RewriteCond %{SERVER_PORT} 443
              RewriteRule ^/(.*)$

http://%{SERVER_NAME}/$1 [NE]

              #:RewriteCond:定義rewriting會發生的條件,可以有多個。可以用“!” 表示取反。多個 RewriteCond 預設是AND;也可使用[OR]修改各個條件間的關係。

              #:RewriteRule:定義rewrite的規則,可以有多個。格式為:Pattern Substitution [flags] 

                 該指令中第一個引數為:正則表示式形式的條件;

                 第二個引數為:滿足條件時,跳轉的地址;

                     在<VirtualHost>中,表示 hostname、port  之後、query string 之前的部分。

                     其中會用到“$N ”(N為>=0 的正整數)

                         N=0 與 N!=0 的區別:以表示式 RewriteRule ^/(.*)$ http://%{SERVER_NAME}/$1    為例

                         $0 表示替換滿足第二個引數Pattern 中的所有部分;如 /www/index.php

                         $1 表示替換滿足第二個引數Pattern 中的“()”括號內的部分;如 www/index.php  

                         兩者的區別是:$1 未包括Pattern 的括號外的“/”

                第三個引數,引數以“[ ]”包括,各個引數間以“,”分隔。這裡詳細學習了幾個FLAG。

                     [L] LAST  當本條RewriteRule中的條件滿足時,只執行本條RewriteRule,不再執行其他的RewriteRule。

                                      注意大條件:當本條RewriteRule中的條件滿足時。

                                      在日誌檔案中,有[L]和無[L]的區別如下圖:無[L]時,會再次匹配RewriteRule

                     [R] REDIRECT 顯式的強制重定向HTTP。有[R]和無[R]的區別如下:

                      日誌中會出現“implicitly forcing redirect (rc=302) with” 的原因 ,查mod_rewrite.c可知,當rewrite 後的地址為URL時,將進行隱式的強制跳轉。

                      當設定了標識[R]時,將進行顯示的強制跳轉。

                   [NE] Not Escape 不對特殊字元進行轉義,當不設定該引數時,在log中能看到這樣的記錄:                           

                  其他指令:RewriteBase  定義rewrite的目錄範圍

使用rewrite_module 進行跳轉後,瀏覽器第一次返回 FOUND 302 的結果,表示臨時性跳轉;接著瀏覽器會自動再繼續跳轉,返回 200 實現URL的正常跳轉。

也就是說,使用rewrite_mode 時,瀏覽器會自動進行兩次動作,一次是實現地址的轉換,另一次是實現地址的跳轉。

RewriteCond 和 RewriteRule 的執行順序:先執行 RewriteRule,再去檢視是否滿足 RewriteCond 的條件。 該點是從log中看出的:

相關推薦

設定ApacheHTTPS 自動轉為 HTTP

還是跟HTTPS相關,因為HTTPS導致系統很慢,頻繁崩潰,於是,領導想了個招:能否設定讓HTTPS 自動跳轉為 HTTP。 網上一查,是可以的。 使用Apache的 rewrite_module模組。 再從網上信手找來幾條 rewrite_module 的指令,一配置,嘿

https----------如何在phpstudy環境配置apachehttps訪問以及訪問http自動轉成https

寫入 rom virtual write rule 找到 engine rul str 1、首先在 httpd.conf裏面修改幾個地方   找到 #LoadModule ssl_module modules/mod_ssl.so 去掉前面的#   Include conf

Charles 抓包發現自動轉為https 問題梳理

rom 意思 成了 靜態資源 自動 但是 域名 異常 char 今天遇到個有點意思的問題.特此記錄. 業務場景: 做了一個頁面,但是對外是掛載在京東主站上.如:www.jd.com/yifu/123456.html. 現場情況: 在本地/測試環境/預

在php頁面中設定https自動

http直接跳轉為https,重定向一下就可以了。用php就更簡單了,新增header: 當訪問http時跳轉到https <?php //將http轉化為https if ($_SERVER[

Linux設定Apache支援Https服務

HTTPS的主要作用: 1)建立一個資訊保安通道,來保證資料傳輸的安全性 2)確認網站的真實性 HTTPS與HTTP的區別: 1)HTTPS協議需要到ca申請證書,免費證書較少 2)HTTP是超文字傳輸協議,資訊是明文傳輸,HTTPS則是具有安全性的SSL加密傳輸協議 3)

eclipse debug模式總是自動到ThreadPoolExecutor.java類

  1.情景展示   使用eclipse,debug模式執行專案時,總是會呼叫這個ThreadPoolExecutor.java類,明明沒有打斷點卻自動停止執行。   2.原因分析   在eclipse中,預設是當執行中遇到未知的異常時,程式會暫停,除非你按F

apachehttps配置與優化效能具體操作

宣告:以下操作路徑及 httpd.conf檔案與原始檔案有所區別,博主採用的httpd.conf引入其他配置檔案進行分專案管理,大體操作類似 對於nginx參考騰訊實踐-騰訊HTTPS效能優化實踐 *可以忽略此段 -http.txt 檔案為80埠配置檔案修改後綴為conf,重啟apa

Spring MVC 設定訪問錯誤路徑自動轉到指定頁面

在dispatcher-servlet.xml中配置如下servlet後,對於*.do結尾的url請求,將轉發給org.springframework.web.servlet.DispatcherServlet類去處理。 問題:對於不存在的頁面或者不符合匹配條件的url,瀏

apache 配置https後,設定http自動https

apache上https和http都配置後,TP框架由於入口檔案原因,因此設定雙層url規則,第一層只做301重定向,第二層依舊是TP框架的重寫規則,直接上乾貨.htaccess檔案內容 <IfModule mod_rewrite.c> Options +F

hexo在https 域名自動轉至http連結的解決方案

問題描述: 之前本人的 hexo 站點是部署在 https 安全域名下的(https://walkerhuang.cn),當點選選單項的一些按鈕時(歸檔、分類、關於),突然提示找不到相關頁面,一看位址列連結變成了 http://walkerhuang.cn/archives/ ,當時通過

在CentOS 7 1804 中 配置 Apache HTTP Server 將 http 自動轉之 https

相關連結: 在CentOS 7 1804 中 安裝 Apache HTTP Server 並 配置 騰訊雲 SSL 在CentOS 7 1804 中 安裝 Apache HTTP Server 並 配置 阿里雲 SSL 在CentOS 1804 中的 Tomcat 9 設定 SSL( h

在tomcat中設定http自動https

相關文章: 在CentOS 1804 中的 Tomcat 9 設定 SSL( https ) 加密 (多域名加密,阿里雲 SSL+ 騰訊雲 SSL) 在CentOS 1804 中設定 Apache Tomcat 9.0.12 開機自啟   server.xml設定

Tomcat的Https設定Http自動Https

1.場景還原     近期專案中要對資訊傳輸過程中進行安全加密,那麼第一時間浮現筆者腦海的當然是https,接下來筆者將介紹如何在web伺服器Tomcat中配置Https及Http自動跳轉Https2.Https相關介紹    Https是由NetScape公司設計的一個基於

IIS 設定HTTP頁面自動轉到HTTPS

從網路安全形度出發,HTTPS加密協議因而受到眾多的網路巨頭的支援,越來越多的http站點開始向https站點過度,但是很多已經部署SSL證書的站點被客戶端訪問時,並沒有跳轉到HTTPS協議,因此本文介紹IIS 版本實現Http自動轉換到Https的方法。 Iis中

Tomcat的設定HTTP頁面自動轉到HTTPS

HTTP轉換到HTTPS常見的解決方案是部署SSL證書來升級。只有正確部署了SSL證書才能使用安全的HTTPS。但有時候,客戶端使用HTTP進行訪問時,HTTP協議沒有跳轉到HTTPS。為了解決這Tomcat伺服器實現HTTP自動轉換到HTTPS的方法。 Tomca

http如何設定自動https

開啟D:/apache-tomcat-6.0.29/conf/web.xml,在該檔案</welcome-file-list>後面加上這樣一段:<login-config>      <!-- Authorization setting for SSL -->      &

今天這篇內容分享Apachehttp自動轉到https的多種方法

admin 頁面 站點 自動 rule 所有 access http請求 使用   本文主要和大家分享Apache http自動跳轉到https的幾種方法,非常不錯,具有參考借鑒價值,需要的朋友參考下   本文主要和大家分享Apache http自動跳轉到https的幾種

nginx證書制作以及配置https並設置訪問http自動https(反向代理轉發jboss)

app ast mime with cati permanent bsp location admin nginx證書制作以及配置https並設置訪問http自動跳轉https 默認情況下ssl模塊並未被安裝,如果要使用該模塊則需要在編譯時指定–with

Tomcat的HTTPS配置及HTTP自動轉配置

key 簽名 去掉 security div class span tro false 1.生成證書     (1)在jdk的安裝目錄\bin\keytool.exe下打開keytool.exe        在命令行中輸入以下命令: keytool -genke

http自動轉到https

false https toolbar 需求 驗證 lba 跳轉 bsp 自動 需求:所有的http自動跳轉到https。方法一:nginx的rewrite1、在nginx配置文件中增加這行。 server { rewrite ^(.*)$ https://$