日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

Apache HTTP服務器是世界上流行的Web服務器之一。這是一種開源跨平臺HTTP服務器,為互聯網上很大一部分的網站提供支持。Apache提供了許多強大的功能,可通過額外的模塊加以擴展。

如果你是一名網站所有者或系統管理員,很可能常與Apache打交道。你可能執行的最常見任務之一是將HTTP流量重定向至你網站的安全(HTTPS)版本。

不像HTTP以明文格式發送和返回請求和響應,HTTPS使用TLS/SSL來加密客戶端和服務器之間的通信內容。

使用HTTPS而不是HTTP有許多優點,比如:

  • 所有數據都是雙向加密的。因而,敏感信息即使遭攔截也無法被讀取。
  • 谷歌Chrome瀏覽器和所有其他流行的瀏覽器會將你的網站標為安全網站。
  • HTTPS讓你可以使用HTTP/2協議,從而大大改善網站性能。
  • 谷歌偏愛HTTPS網站。如果網站內容通過HTTPS來提供,你網站的排名會更高。

本文介紹了如何在Apache中將HTTP流量重定向至HTTPS。

在Apache中,有幾種方法可以重定向至HTTPS。如果你擁有訪問Apache在其中運行的linux服務器的root權限,首選方法是在域名的虛擬主機配置文件中設置重定向。否則,可以在域名的.htaccess文件中設置重定向。

一些控制面板(比如cPanel)讓你可以通過點擊幾下鼠標強制進行HTTPS重定向。

使用虛擬主機將HTTP重定向至HTTPS

Apache虛擬主機定義了服務器上托管的一個或多個域名的設置。在虛擬主機指令中,你可以指定網站文檔root(包含網站文件的那個目錄)、為每個網站創建單獨的安全策略、使用不同的SSL證書、配置重定向等等。

將SSL證書安裝到域名上時,通常會有針對該域名的兩個虛擬主機指令。第一個面向端口80的網站的HTTP版本,另一個面向端口443的HTTPS版本。

在基于Red Hat的發行版(比如centos和Fedora)中,虛擬主機文件存儲在/etc/httpd/conf.d中。在Debian及其衍生版本(比如Ubuntu)上時,文件存儲在/etc/apache2/sites-available目錄中。

要將網站重定向至HTTPS,使用Redirect指令,如下例所示:

  1. <VirtualHost *:80>
  2.  ServerName example.com
  3.  ServerAlias www.example.com
  4.  Redirect permanent / https://example.com/
  5. </VirtualHost>
  6. <VirtualHost *:443>
  7.  ServerName example.com
  8.  ServerAlias www.example.com
  9.  Protocols h2 http:/1.1
  10.  # SSL Configuration
  11.  # Other Apache Configuration
  12. </VirtualHost>

不妨解釋一下代碼。我們使用兩個虛擬主機指令,一個用于HTTP版本的網站,一個用于HTTPS版本的網站。

  • VirtualHost *:80—Apache服務器在端口80(HTTP)上偵聽指定域名的入站連接。
  • VirtualHost *:443—Apache服務器在端口443(HTTPS)上偵聽指定域名的入站連接。

ServerName和ServerAlias指令指定虛擬主機的域名。 確保將其換成你的域名。

HTTP虛擬主機中高亮的一行:Redirect permanent / https://example.com/將流量重定向至網站的HTTPS版本。

通常,你還希望將網站的HTTPS www版本重定向至非www,反之亦然。這是一個示例配置:

  1. <VirtualHost *:80>
  2.  ServerName example.com
  3.  ServerAlias www.example.com
  4.  Redirect permanent / https://example.com/
  5. </VirtualHost>
  6. <VirtualHost *:443>
  7.  ServerName example.com
  8.  ServerAlias www.example.com
  9.  Protocols h2 http:/1.1
  10.  <If "%{HTTP_HOST} == 'www.example.com'">
  11.  Redirect permanent / https://example.com/
  12.  </If>
  13.  # SSL Configuration
  14.  # Other Apache Configuration
  15. </VirtualHost>

HTTPS虛擬主機內的代碼(高亮的那一行)檢查請求報頭是否含有www域名、重定向至非www版本。

每當你更改配置文件,都需要重新啟動或重新加載Apache服務,以使更改生效:

Debian和Ubuntu:

  1. sudo systemctl reload apache2
  2. CentOS和Fedora:
  3. sudo systemctl reload httpd

使用.htaccess將HTTP重定向至HTTPS

.htaccess是Apache Web服務器基于目錄的配置文件。該文件可用于定義Apache如何從文件所在的目錄中提供文件以及啟用/禁用其他功能。

.htaccess文件通常位于域名根目錄中,但你可以將其他.htaccess文件放在子目錄中。

該方法要求將mod_rewrite模塊加載到Apache服務器上。默認情況下,該模塊加載到大多數服務器上。可能的話,最好在虛擬主機中創建重定向,因為這更簡單更安全。

要將所有HTTP流量重定向至HTTPS,請打開root .htaccess文件,為它添加以下代碼:

  1. RewriteEngine On
  2. RewriteCond %{HTTPS} off
  3. RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]

以下是代碼的含義:

  • RewriteEngine On—啟用重寫功能。
  • RewriteCond %{HTTPS} off—檢查HTTP連接,如果條件滿足,就執行下一行。
  • RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]—將HTTP重定向至HTTPS,狀態代碼為301(永久移動)。確保更改了域名。

下面這個例子有一個額外的條件,檢查請求是否以www開始。用它迫使所有訪客使用網站的HTTPS非www版本:

  1. RewriteCond %{HTTPS} off [OR]
  2. RewriteCond %{HTTP_HOST} ^www.example.com [NC]
  3. RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]

編輯.htaccess文件時,你不需要重啟服務器,因為Apache在每次請求時讀取文件。

結束語

在Apache中,將HTTP重定向至HTTPS的首選方法是在域名的虛擬主機中配置301 redirect。

原文標題:Redirect HTTP to HTTPS in Apache

分享到:
標簽:Apache HTTP
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定