Condições com expressão regular no .htaccess
Salve galera...
estou a fazer algumas melhorias em nossa plataforma web e algumas decisões estou a tratar direto no .htaccess, me barrei na seguinte situação:
no .htaccess tem um redirecionamento que quando o usuário acessa o site sem digitar o www o htacces se encarrega de acrescentar o www e redireciona para o dominio solicitado já com o www, até ai tudo certo, porém preciso definir um protocolo na url destino direto no htaccess para que funcione corretamente EX:http,https
gostaria que quando o site estivesse sendo acessado o proprio htaccess identificasse se o usuário está no https ou http e então direcionar para o protocolo que estiver na url para que não seja nescessário fazer isso através do PHP pois isso irá gerar mais um direcionamento, que se tratando de SEO não seria muito recomendado.
sei que há como verificar se o usuário está no https ou não, o problema é como criar uma expressão regular para se aplicar a essa regra?
por exemplo:
no PHP usaria assim:
if($_SERVER['HTTPS'] == 'on'){
echo "https://www.dominio.com.br";
}else{
echo "http://www.dominio.com.br";
}
a mesma constante pode ser utilizada no htaccess da seguinte forma %{HTTPS}.esse é meu htaccess atual:
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www [NC]
RewriteCond %{HTTP_HOST} \.(br|com|net|org|adv|ind|art|eng|inf|tur|srv|tv)$ [NC]
RewriteRule ^(.*) [url=]http://www.%[/url]{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteRule !\.(txt|css|js|gif|jpeg|jpg|png|ico|JPG|JPEG|PNG|GIF|eot|ttf|woff|woff2|php|html|ogg|mp3|mp4|wma|avi|xml)$ run.php
meu problema está na penúltima linha, gostaria que ficasse da seguinte forma:
gostaria que ficasse assim:
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www [NC]
RewriteCond %{HTTP_HOST} \.(br|com|net|org|adv|ind|art|eng|inf|tur|srv|tv)$ [NC]
RewriteRule ^(.*) (aqui a expressão que defina se está no https ou http)://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteRule !\.(txt|css|js|gif|jpeg|jpg|png|ico|JPG|JPEG|PNG|GIF|eot|ttf|woff|woff2|php|html|ogg|mp3|mp4|wma|avi|xml)$ run.php
Como não sou muito bom em expressão regular não consegui achar uma lógica que funcione como preciso, alguém poderia me dar alguma dica de como criar uma expressão regular que atenda essa necessidade?
desde já agradeço a todos que se dispuserem a dar essa força.
abraço a todos.
Discussão (0)
Carregando comentários...