用我的步驟前,請一定要保證自己的網站能夠用https正常打開;方法也是非常的簡單,具體步驟如下:
一、登陸服務器
不管你的服務器是linux還是windos,原理都是一樣的,我拿windos服務器來舉例吧!
登陸windos服器方法很簡單,需要“遠程桌面連接”。
我們直接點擊左下角“開始” =》 “運行”,(或使用“WIN+R”快捷鍵),再輸入"mstsc"即可打開遠程桌面連接,輸入你的IP+用戶名+密碼即可遠程連接成功;
winscp顯示隱藏文件快捷鍵Ctrl+Alt+H
二、打開url重定向偽靜態規則支持
1、打開Apache/conf/httpd.conf;
2、找到 #LoadModule rewrite_module modules/mod_rewrite.so;
三、修改網站目錄的段:Directory
1、打開Apache/conf/httpd.conf;
2、找到你網站目錄的段,例如我的是:“C:\phpStudy\PHPTutorial\WWW”
3、修改其中的 AllowOverride None 為 AllowOverride All;
四、保存並重啟apache服務
五、設置重定向偽靜態規則
1、在你網站目錄下放一個.htaccess文件。注意:windows環境下,不能把文件直接改名為.htaccess,會提示你必須輸入文件名。所以我們先新建一個“新建文本文檔.txt”文檔,再用記事本打開,選擇另存為,保存類型選擇“所有文件(*.*)”,文件名輸入“.htaccess”,保存。這樣便生成了一個.htaccess文件。
2、打開並編輯.htaccess文件,寫入如下規則:
RewriteEngine on RewriteCond %{SERVER_PORT} !^443$ RewriteCond %{REQUEST_URI} !^/index.html RewriteRule (.*) https://%{SERVER_NAME}/$1 [R]
解釋:
%{SERVER_PORT} —— 訪問端口
%{REQUEST_URI} —— 比如如果url是 https://www.***.com/index.html,則是指 /index.html
%{SERVER_NAME} —— 比如如果url是 https://www.***.com/index.html,則是指 www.***.com
以上規則的意思是:
如果訪問的url的端口不是443,且訪問頁面不是/index.html,則應用RewriteRule這條規則。
這樣便實現了:訪問了 https://www.***.com/index.php 或者 https://www.***.com/admin/index.php 等頁面的時候會自動跳轉到 https://www.***.com/index.php 或者 https://www.***.com/admin/index.php,
但是訪問 https://www.***.com//index.html 的時候就不會做任何跳轉,也就是說 https://www.***.com//index.html 和 https://www.***.com//index.html 兩個地址都可以訪問。