Php 从HTTPS重定向到HTTP
webapp是使用CodeIgniter构建的,而我使用的是Cloudflare灵活的SSL 页面通过HTTPS加载,但只要有重定向,页面就会通过HTTP加载。从那时起,所有页面都通过HTTP提供服务 下面是一个例子:Php 从HTTPS重定向到HTTP,php,codeigniter,ssl,https,cloudflare,Php,Codeigniter,Ssl,Https,Cloudflare,webapp是使用CodeIgniter构建的,而我使用的是Cloudflare灵活的SSL 页面通过HTTPS加载,但只要有重定向,页面就会通过HTTP加载。从那时起,所有页面都通过HTTP提供服务 下面是一个例子: public function logout() { $this->session->sess_destroy(); redirect('/'); } 注销功能完成后,所有页面都通过HTTP加载 如何确保页面在重定向后通过HTTPS加载 以下是my
public function logout()
{
$this->session->sess_destroy();
redirect('/');
}
注销功能完成后,所有页面都通过HTTP加载
如何确保页面在重定向后通过HTTPS加载
以下是my.htaccess文件的内容:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
ErrorDocument 404 /index.php
</IfModule>
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.myurl.com/$1 [R,L]
重新启动发动机
重写基/
重写COND%{REQUEST_URI}^系统*
重写规则^(.*)$/index.php?/$1[L]
重写cond%{REQUEST_URI}^应用程序*
重写规则^(.*)$/index.php?/$1[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^(.*)$index.php?/$1[L]
ErrorDocument 404/index.php
重新启动发动机
重写cond%{SERVER_PORT}80
重写规则^(.*)$https://www.myurl.com/$1[R,L]
简单的方法可能是这样设置基本url
$config['base_url'] = "https://yoursite.com/";
这将导致访问$config['base\u url']
(包括重定向()
)的所有CI函数使用https
不常提及的是base\u url()
通过使用第二个参数强制协议的能力。e、 g
echo base_url("blog/post/123", 'https');
您可以使用.htaccess强制重定向到https协议。
将其置于现有命令之上
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
删除行上的第二个
重写引擎,并将建议的条件/规则放入
块中。同时检查基本url的APPPATH.config/config.php'
值,并将https放在那里。为清晰起见,基本url的值应为https://www.myurl.com
,对吗?用javascript代替php重定向window.location=”http://www.yoururl.com";代码>https://www.myurl.com/
@Tpojka将.htaccess文件保持不变,但将配置中的基本url更改为https,解决了此问题。谢谢你的建议