...does not like more than one
RewriteRule.
Esse requisito é incomum. Provavelmente está reclamando sobre os múltiplos redirecionamentos ao solicitar http://example.com , em vez de literalmente o número de RewriteRule diretivas?
Isso pode ser resolvido ao redirecionar para o URL canônico na primeira diretiva RewriteRule . Então, ao invés de:
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Você escreveria:
RewriteRule ^ https://www.example.com%{REQUEST_URI} [R=301,L]
Ou, para manter esse "genérico", sem incluir explicitamente o nome de domínio no RewriteRule , tente o seguinte:
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)\.?$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L]
Único RewriteRule
Você pode estender o código acima para criar um único RewriteRule para a canonização HTTPS e www. Tente o seguinte:
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)\.?$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L]
Para todas as solicitações que são HTTP ou , não inicie www , em seguida, redirecione para o URL canônico. A terceira diretiva RewriteCond é necessária para capturar o domínio (menos um prefixo www. opcional) do host. O %1 é uma referência anterior ao último CondPattern correspondente. %código%. Se você simplesmente codificou o nome do host canônico na (.+) substituição , você não precisaria dessa terceira condição.