原文網(wǎng)址:http://www.cnblogs.com/niejunlei/p/5279677.html
如何設(shè)置http自動跳轉(zhuǎn)到https?apache環(huán)境下锡宋,配置好https后逼庞,需要設(shè)置url重定向規(guī)則痕囱,使網(wǎng)站頁面的http訪問都自動轉(zhuǎn)到https訪問实愚。
- 先打開url重定向支持
- 開Apache/conf/httpd.conf肋拔,找到 #LoadModule rewrite_module modules/mod_rewrite.so 去掉#號思喊。
- 找到你網(wǎng)站目錄的<Directory>段言沐,比如我的網(wǎng)站目錄是/var/html/www邦投,找到
<Directory “/var/html/www”>
…
</Directory>
修改其中的 AllowOverride None
為AllowOverride All
- 重啟apache服務(wù)
- 設(shè)置重定向規(guī)則
在你網(wǎng)站目錄下放一個.htaccess文件伤锚。windows環(huán)境下,不能把文件直接改名為.htaccess志衣,會提示你必須輸入文件名屯援。所以我們先新建一個“新建文本文檔.txt”文檔猛们,記事本打開,選擇另存為狞洋,保存類型選擇“所有文件(.)”弯淘,文件名輸入“.htaccess”,保存吉懊。這樣便生成了一個.htaccess文件庐橙。
編輯器打開.htaccess文件,寫入如下規(guī)則:
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{REQUEST_URI} !^/tz.php
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R]
解釋:
%{SERVER_PORT} —— 訪問端口
%{REQUEST_URI} —— 比如如果url是 http://localhost/tz.php借嗽,則是指 /tz.php
%{SERVER_NAME} —— 比如如果url是 http://localhost/tz.php态鳖,則是指 localhost
以上規(guī)則的意思是,如果訪問的url的端口不是443恶导,且訪問頁面不是tz.php浆竭,則應(yīng)用RewriteRule這條規(guī)則。這樣便實(shí)現(xiàn)了:訪問了 http://localhost/index.php 或者 http://localhost/admin/index.php 等頁面的時候會自動跳轉(zhuǎn)到 https://localhost/index.php 或者 https://localhost/admin/index.php惨寿,但是訪問 http://localhost/tz.php 的時候就不會做任何跳轉(zhuǎn)邦泄,也就是說 http://localhost/tz.php 和 https://localhost/tz.php 兩個地址都可以訪問。