IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Apache http自动跳转到https的几种方法

    admin发表于 2017-01-14 15:57:55
    love 0

    方法一

     RewriteEngine On
     RewriteBase /
     RewriteCond %{SERVER_PORT} 80
     RewriteRule ^(.*)$ https://yusky.me/$1 [R=301,L]
    
    #这样跳转的好处是独立IP主机也支持,访问ip能自动跳转到https

    方法二

    RewriteEngine on
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [R=301,L]
    #整站跳转

     

    方法三

    RewriteEngine on
    RewriteBase /yourfolder
    RewriteCond %{SERVER_PORT} !^443$
    #RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [R=301,L]
    RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
    #以上至针对某个目录跳转,  yourfolder就是目录名

     

    方法四

    redirect 301  /你的网页 https://你的主机+网页
    #至针对某个网页跳转

     

    方法五

    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

    以上规则的意思是,如果访问的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 两个地址都可以访问。

    转载地址:https://yusky.me/apache-htaccess-http-redirect-https.html



沪ICP备19023445号-2号
友情链接