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