国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 服務器 > Web服務器 > 正文

IIS與APACHE實現HTTP重定向到HTTPS

2024-09-01 13:56:38
字體:
來源:轉載
供稿:網友

IIS7

  從微軟的官方網站下載HTTP重寫模塊,安裝完畢之后重啟IIS服務,之后打開IIS控制臺,發現多了一個組件,雙擊“URL重寫”,在右邊窗體中選擇“添加規則”,并添加一個空白規則,給規則自定義一個名字(名稱自便),比如我這里叫“redirect to HTTPS”,模式為:(.*),添加一個條件,條件輸入為 {HTTPS},與模式匹配,模式為 ^OFF$,然后配置操作,操作類型為:重定向,重定向到URL為:https://{HTTP_HOST}/{R:1},重定向類型:永久301。

  設置完畢后點擊右側的“應用”,這個 URL 重寫就配置完畢了。

  配置后,根目錄下的web.config文件的內容如下:

<?xml version="1.0" encoding="UTF-8"?><configuration>  <system.webServer>    <rewrite>      <rules>        <rule name="redirect to HTTPS" enabled="true" stopProcessing="true">          <match url="(.*)" />          <conditions>            <add input="{HTTPS}" pattern="^OFF$" />          </conditions>          <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" />        </rule>      </rules>    </rewrite>  </system.webServer></configuration>

Apache http跳轉https配置

修改.htaccess文件,在文件里增加如下幾行:

RewriteEngine OnRewriteBase /RewriteCond %{HTTPS} !=onRewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

另一種寫法是:

RewriteEngine onRewriteBase /RewriteCond %{SERVER_PORT} !^443$RewriteRule (.*) https://%{SERVER_NAME}/$1 [R=301,L]

nginx配置

nginx的rewrite方法

思路

這應該是大家最容易想到的方法,將所有的http請求通過rewrite重寫到https上即可

配置

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

搭建此虛擬主機完成后,就可以將http://test.com的請求全部重寫到https://test.com上了
 
nginx的497狀態碼

error code 497

497 - normal request was sent to HTTPS 

解釋:當此虛擬站點只允許https訪問時,當用http訪問時nginx會報出497錯誤碼
 
思路

利用error_page命令將497狀態碼的鏈接重定向到https://test.com這個域名上

配置

server {  
    listen       192.168.1.11:443;  #ssl端口  
    listen       192.168.1.11:80;   #用戶習慣用http訪問,加上80,后面通過497狀態碼讓它自動跳到443端口  
    server_name  test.com;  
    #為一個server{......}開啟ssl支持  
    ssl                  on;  
    #指定PEM格式的證書文件   
    ssl_certificate      /etc/nginx/test.pem;   
    #指定PEM格式的私鑰文件  
    ssl_certificate_key  /etc/nginx/test.key;  
      
    #讓http請求重定向到https請求   
    error_page 497  https://$host$uri?$args;  

index.html刷新網頁

思路
上述兩種方法均會耗費服務器的資源,我們用curl訪問baidu.com試一下,看百度的公司是如何實現baidu.com向www.baidu.com的跳轉
  
可以看到百度很巧妙的利用meta的刷新作用,將baidu.com跳轉到www.baidu.com.因此我們可以基于http://test.com的虛擬主機路徑下也寫一個index.html,內容就是http向https的跳轉

index.html

<html>  
<meta http-equiv="refresh" content="0;url=https://test.com/">  
</html> 

nginx虛擬主機配置

server {  
    listen 192.168.1.11:80;  
    server_name test.com;  
      
    location / {  
                #index.html放在虛擬主機監聽的根目錄下  
        root /srv/www/http.test.com/;  
    }  
        #將404的頁面重定向到https的首頁  
    error_page  404 https://test.com/;  
}  

后記
上述三種方法均可以實現基于nginx強制將http請求跳轉到https請求,大家可以評價一下優劣或者根據實際需求進行選擇。


注:相關教程知識閱讀請移步到服務器教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 海南省| 塘沽区| 招远市| 会泽县| 鄂托克前旗| 曲周县| 高阳县| 卓尼县| 仁寿县| 苍梧县| 宁河县| 贡山| 昔阳县| 抚宁县| 昂仁县| 湘乡市| 平和县| 铁力市| 宜兰县| 赤峰市| 灵石县| 江永县| 吉林市| 高陵县| 寿光市| 聂荣县| 前郭尔| 衡南县| 金湖县| 尚志市| 太康县| 滨州市| 炎陵县| 湖口县| 舞阳县| 大同市| 颍上县| 肥城市| 平顶山市| 黄龙县| 甘洛县|