Force HTTP em todas as páginas, exceto URLs específicos

1

Eu tenho uma situação em que preciso forçar todas as páginas do meu site a redirecionar para o HTTP, exceto para duas URLs específicas que precisam forçar o redirecionamento para HTTPS.

As duas páginas que precisam redirecionar para as páginas HTTPS são:

/ microsoft-moc-on-demand-video-training / moc-registration-page /

/ cursos / registro /

O código que eu tenho usado no meu arquivo .htaccess é assim:

RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^/courses/register/
RewriteCond %{REQUEST_URI} !^/microsoft-moc-on-demand-video-training/moc-registration-page/
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTPS} off
RewriteRule ^(/courses/register/|/microsoft-moc-on-demand-video-training/moc-registration-page/)/ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Infelizmente, isso não parece estar funcionando. O site inteiro redireciona para HTTP (então parte do código funciona), mas essas duas exceções (que devem redirecionar para HTTPS) não fazem isso, elas permanecem como links HTTP.

Alguma ideia do que estou fazendo errado aqui?

    
por DigitalSky 03.02.2016 / 00:31

1 resposta

0

Quando você usa um RewriteRule em .htaccess, ele usa o contexto por diretório (relativo), o que significa que o valor padrão deve não incluir uma barra inicial. Seu padrão também inclui uma barra extra no final que causará problemas. Tente o seguinte, que corrige esses dois itens:

RewriteRule ^(courses/register/|microsoft-moc-on-demand-video-training/moc-registration-page/) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    
por 11.02.2016 / 09:01