1

好的,所以我在使用 .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']);  

非常感谢任何帮助:)

4

1 回答 1

1

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

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

于 2012-06-22T10:38:25.583 回答