Talvez a Linha 4 deva ser:
RewriteRule (.*) mydomain.com/$1 [R,L]
% 25 é o valor codificado da URL de%
Eu tenho meu arquivo de configuração configurado assim:
<VirtualHost *:80>
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule (.*) https://example.com/%$1 [R,L]
</VirtualHost>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /ssd/www/
SSLEngine on
SSLCertificateFile /ssd/certs/example_com.crt
SSLCertificateKeyFile /ssd/certs/example_com.key
SSLCertificateChainFile /ssd/certs/example_com.ca-bundle
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
O problema é que, ao navegar para uma página HTTP padrão quando ela é redirecionada, ele anexa /%25/
ao domínio, por exemplo.
http://example.com
é alterado para https://example.com/%25/
e http://example.com/my-category/my-page
é alterado para https://example.com/%25/my-category/my-page
.
Talvez a Linha 4 deva ser:
RewriteRule (.*) mydomain.com/$1 [R,L]
% 25 é o valor codificado da URL de%
Como Vikelidis já apontou, %$1
está com erro. No entanto, você tem outros problemas que também devem ser abordados.
A diretiva RewriteCond
que verifica HTTPS (por exemplo, porta 443) no VirtualHost
da porta 80 é redundante e deve ser removida.
Além disso, quando usado na configuração do servidor, o padrão RewriteRule
corresponde ao caminho da URL completo, que inclui o prefixo da barra. Sua substituição resultará em uma barra dupla. O Apache recolhe isso mais tarde para resolver o pedido, no entanto, ele ainda está disponível em alguns casos, portanto, pode quebrar as regras posteriores.
Esse redirecionamento também deve ser um permanente 301, não um temporário 302 (o padrão) - mas apenas alterá-lo quando tiver certeza de que está funcionando OK.
Então, se estiver usando mod_rewrite, isso deve ser escrito como:
<VirtualHost *:80>
RewriteEngine on
RewriteRule /(.*) https://example.com/$1 [R=301,L]
</VirtualHost>
Então, novamente, você não precisa do mod_rewrite aqui. Um mod_alias Redirect
seria mais eficiente:
<VirtualHost *:80>
Redirect 301 / https://example.com/
</VirtualHost>