我給我的個人網站加了 SSL 憑證,而且設定了 HTTP 全部跳轉到 HTTPS,可為什麼直接 HTTP 訪問 Typecho 所在目錄(/blog/)不會跳轉?包括文章頁、後台頁面也是。
而且直接 HTTP 訪問部落格首頁,文章連結也是
http://
而不是
https://
,我在後台已經設定了網站地址是走
https
的。
另外,主機商說主機使用的不是 443 連接埠,只能用 RewriteCond %{HTTP:KERSSL} !on
來判斷是否走了 HTTPS,我的 .htaccess
檔案如下:
RewriteCond %{HTTP:KERSSL} !on [NC]RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
直接用 HTTP 訪問其他目錄是能夠跳轉到 HTTPS 的。
回複內容:
我給我的個人網站加了 SSL 憑證,而且設定了 HTTP 全部跳轉到 HTTPS,可為什麼直接 HTTP 訪問 Typecho 所在目錄(/blog/)不會跳轉?包括文章頁、後台頁面也是。
而且直接 HTTP 訪問部落格首頁,文章連結也是 http://
而不是 https://
,我在後台已經設定了網站地址是走 https
的。
另外,主機商說主機使用的不是 443 連接埠,只能用 RewriteCond %{HTTP:KERSSL} !on
來判斷是否走了 HTTPS,我的 .htaccess
檔案如下:
RewriteCond %{HTTP:KERSSL} !on [NC]RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
直接用 HTTP 訪問其他目錄是能夠跳轉到 HTTPS 的。
在config.inc.php裡增加
define('__TYPECHO_SECURE__', true);
最後找出了原因,是因為 /blog/
下還有一個 .htaccess
,我一開始不知道這個檔案,所以忘在這裡加上跳轉了,因此在訪問/blog/
的時候 Apache 讀取的是該目錄下的 .htaccess
(也就是不會從 HTTP 跳轉到 HTTPS 的那個)。
除此之外,@joyqi 回答的解決方案是用來讓連結輸出為https
的