Ошибка с 3-м набором правил.
Вот решение: с 3-м набором правил: если https "включен", то если URL не содержит "/ secure", то перенаправить на http.
# Rewrite Rules for domain.com
RewriteEngine On
RewriteBase /
#Rewrite www to domain.com
RewriteCond %{HTTP_HOST} ^www\.domain\.com [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]
#Rewrite to https
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} /secure.php
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]
#traffic to http://, except secure.php
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !(/secure.php)
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [L]
Не по теме советы: пожалуйста, поищите Yahoo Slow и их очень умные советы по оптимизации сайта, и вы поймете, почему всегда лучше иметь "www" раньше. Вам лучше сделать обратное для вашего правила перезаписи # 1: если нет «www», добавьте его.
Пожалуйста, попробуйте использовать директиву RewriteLog
: она поможет вам отследить такие проблемы:
# Trace:
# (!) file gets big quickly, remove in prod environments:
RewriteLog "/web/logs/mywebsite.rewrite.log"
RewriteLogLevel 9
RewriteEngine On
Скажите, работает ли он?