我正在尝试在网站的3个页面上强制使用SSL,并将其余部分强制为http
mydomain.com/register,mydomain.com/checkout和mydomain.com/thanks都需要重定向到https:但任何其他页面都应该只使用http:
这可能吗?
我目前在htaccess
中有一些特定于codeigniter的东西RewriteEngine on
RewriteCond $1 !^(index\.php|assets|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]
答案 0 :(得分:2)
不是.htaccess解决方案,但这是我强制https连接的方式:
// Redirect to secure port
if ($_SERVER['SERVER_PORT'] != 443)
{
$location = 'Location: https://www.blah.com';
header($location);
}
希望这有帮助。
答案 1 :(得分:2)
我认为此代码可以使用(特别是对于CodeIgniter)
RewriteEngine on
# force HTTPS
RewriteCond %{HTTPS} =off
RewriteCond %{REQUEST_URI} (register|checkout|thanks)
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# force HTTP
RewriteCond %{HTTPS} =on
RewriteCond %{REQUEST_URI} !(register|checkout|thanks|css|img|js)
RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [L]