用我的步骤前,请一定要保证自己的网站能够用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 两个地址都可以访问。