.htaccess - 带 Codeigniter htaccess 的 SSL

标签 .htaccess codeigniter ssl

好吧,我在使用 .htaccess 时遇到了一些麻烦。

我正在使用 Codeigniter 并且刚刚安装了 SSL 证书。它运行良好,但我在 Firefox 中没有看到蓝色条,它显示“您与此站点的连接仅部分加密”

这是我的 .htaccess 文件:

RewriteEngine on
Options +FollowSymLinks
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1

RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} (signin)
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !(signin)
RewriteRule ^(.*)$ http://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

我只想在某些页面上强制使用 SSL,从登录页面 (mydomain.com/signin) 开始。它似乎很好地删除了 URL 中的 index.php/,它似乎确实对该页面强制使用 SSL,但没有蓝条:(

我还在配置文件中将我的 base_url 更改为以下内容以允许 http 和 https:

$config['base_url'] = $config['base_url'] = "http".((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "s" : "")."://".$_SERVER['HTTP_HOST'].str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']);  

非常感谢任何帮助:)

最佳答案

我认为该错误是由于您的页面中有一些元素是使用 HTTP 而不是 HTTPS 下载的。

您需要确保您使用相对 URL 或使用适当协议(protocol)(HTTPS 而不是 HTTP)的绝对 URL 引用页面中的所有元素。

关于.htaccess - 带 Codeigniter htaccess 的 SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11154478/

相关文章:

php - Codeigniter 重定向 URL 问题

codeigniter - 如何从 codeigniter 中的另一个 Controller 调用 Controller ?

internet-explorer - SSL 证书被旧版本的 IE 视为无效

c# - 如何动态调用 Web 服务而不通过 SSL 添加服务引用

php - 请求实体太大 PHP

php - 密码保护页面的最佳方法

php - 使用 CI 语句中的 where 防止重复结果

php - 无法在 CodeIgniter 中向 PHP 数组添加数据

node.js - 循环退出时 Node https 回调不触发

php - 在 URL 中保留一个 GET 变量