Apache由http自动跳转到https的多种方法
本文主要和大家分享Apachehttp自动跳转到https的几种方法,当你的站点使用了HTTPS之后,你可能会想把所有的HTTP请求(即端口80的请求),全部都重定向至HTTPS。这时候你可以用以下的方式来做到:
在启用了https之后,还要保证之前的http端口可以打开,http的80端口是有两个网址的,所以这就导致需要把原来的带wwww和不带www的域名同时指定一个https网址上面,需要做两个Apache的301重定向,这个其实是很简单的,夏日博客的做法是直接在.htaccess文件中添加两个301即可,如下所示:
rewritecond%{http_host}^www.php.cn[nc] RewriteRule^(.*)?$https://www.php.cn/$1[R=301,L] RewriteCond%{SERVER_PORT}!^443$ RewriteRule^(.*)?$ https://www.php.cn/$1[R=301,L
第一个301很自然就是带www的跳转到新的https上面了,而下面的301重定向则是判断如果端口不是80的话,则进行重定向,这样的话,带www和不带www的域名就一起跳转到https一个网址上面了,当然这种全站做301的方法是比较暴力的,通常情况下我们只要把主域名做个301就可以了,我这里是因为启用了原来的两个域名。
PHP中文网还手机了一些其它的Apachehttp跳转到https的方法,仅供参考:
方法1
RewriteEngineOn RewriteBase/ RewriteCond%{SERVER_PORT}80 RewriteRule^(.*)$https://www.php.cn/$1[R=301,L]
方法二
RewriteEngineon RewriteCond%{SERVER_PORT}!^443$ RewriteRule^(.*)?$https://%{SERVER_NAME}/$1[R=301,L]#整站跳转
方法三
RewriteEngineon RewriteBase/yourfolder RewriteCond%{SERVER_PORT}!^443$ #RewriteRule^(.*)?$https://%{SERVER_NAME}/$1[R=301,L] RewriteRule^.*$https://%{SERVER_NAME}%{REQUEST_URI}[R=301,L] #以上至针对某个目录跳转,yourfolder就是目录名
方法4
redirect301/你的网页https://你的主机+网页 #至针对某个网页跳转
方法5
RewriteEngineon 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
以上规则的意思是,如果访问的url的端口不是443,且访问页面不是tz.php,则应用RewriteRule这条规则。
这样便实现了:
访问了http://localhost/index.php或者http://localhost/admin/index.php等页面的时候会自动跳转到https://localhost/index.php或者https://localhost/admin/index.php,但是访问http://localhost/tz.php的时候就不会做任何跳转,也就是说http://localhost/tz.php和https://localhost/tz.php两个地址都可以访问。
PS:下面再看下Apache由http自动跳转到https的方法,具体内容介绍如下所示:
修改根目录.htaccess文件
Options+FollowSymlinks RewriteEngineOn #thinkphp去掉index.php RewriteCond%{REQUEST_FILENAME}!-d RewriteCond%{REQUEST_FILENAME}!-f RewriteRule^(.*)$index.php/$1[QSA,PT,L] #http自动跳转到https RewriteCond%{SERVER_PORT}!^443$ #只有匹配对应的域名才会跳转 RewriteCond%{SERVER_NAME}^hrsc.cc|www.hrsc.cc$ RewriteRule(.*)https://%{SERVER_NAME}/$1[R]
总结
以上所述是小编给大家介绍的Apache由http自动跳转到https的多种方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!