好吧,我在使用 .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/