Как вариант что-то вроде
RewriteCond %{HTTP:X-Forwarded-Proto} http(s) [NC]
#RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^331/$ /best/http%1/%2/3 [L,R=301]
с коментом работает %1 а вот со вторым кондом уже нет ;(
Результат в %1-%9 перезаписывается последним успешным совпадением с шаблоном.
Т.е. условие с префиксом
!
не затрёт результаты предыдущего.
RewriteCond %{HTTP:X-Forwarded-Proto} http(s)| [NC]
RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
RewriteRule ^(.*)$ http%1://www.%{HTTP_HOST}/$1 [R=301,L]
Другой способ это запихнуть оба условия в один RewriteCond.
RewriteCond "s %{HTTPS} %{HTTP_HOST}"
Тогда варианты проверяемой строки могут быть такими:
s on site.ru
s on www.site.ru
s off site.ru
s off www.site.ru
RewriteCond "s-%{HTTPS} %{HTTP_HOST}" "^(?:(s)-on|\S+) (?!www\.)(.*)" [NC]
RewriteRule ^(.*)$ http%1://www.%2/$1 [R=301,L]
RewriteCond "s-%{HTTPS} %{HTTP_HOST}" "^(?:(s)-on|\S+) www\.(.*)" [NC]
RewriteRule ^(.*)$ http%1://%2/$1 [R=301,L]