Redirecionar http para https com htaccess não funciona

1
# BEGIN WordPress
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
</IfModule>
# END WordPress

O código .htaccess acima não redireciona para HTTPS. Por quê?

(o IfModule foi comentado de propósito para mostrar que eu não perdi o módulo de reescrita)

atualização

Ao experimentar com o link que recebi

RewriteCond %{HTTPS} =on    This condition was not met
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [L,R=301]    This rule was not met because one of the conditions was not met
RewriteCond %{REQUEST_FILENAME} !-f This variable is not supported: %{REQUEST_FILENAME}
RewriteCond %{REQUEST_FILENAME} !-d This variable is not supported: %{REQUEST_FILENAME}

Meu htaccess fu é fraco na melhor das hipóteses, então não consigo entender como

RewriteEngine On

torna-se

RewriteCond %{HTTPS} =o

que é comentado

This condition was not met

ou que

RewriteCond %{REQUEST_FILENAME} !-d 

recebe comentário

This variable is not supported: %{REQUEST_FILENAME}

Talvez eu esteja cansado. Talvez eu seja apenas idiota.

TIA

    
por LosManos 04.01.2015 / 23:02

2 respostas

0

Com grande ajuda de testador de Htaccess , outro answer em stackexchange, @ETL e @Michael Hampton Acabei com:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Qualquer um de vocês dois pode copiar minha resposta e eu a marcarei como a primeira (primeiro a chegar primeiro) e deletarei isto. Honre aqueles que deveriam.

E para esclarecer - eu era mais estúpido do que cansado. Estressado também desde que meu site estava fora do ar.

O que me leva a uma advertência que pode ser boa para saber. Existe algum tipo estranho de cache do lado do cliente? que fez testes estocásticos para dizer o mínimo. Atualmente, o redirecionamento funciona no Safari @ OSX e no Chromium @ Win, mas não no IE11 @ Win. Para mim. Eu acho que vai se consertar amanhã ou quando eu me incomodo de acionar outra máquina.
Atualização: eu joguei mais. No escritório do meu cliente http- > https no nível da raiz funcionou, mas não por artigo no IE, em vez disso, ficou suspenso. Mas no Opera, sim. No dia seguinte, o IE também funcionou. Em casa, meu IE fez a mesma cambalhota, mas um dia mais rápido. Ambos pendurados em algum tipo de estado de espera.
Por que eu estou escrevendo tanta bobagem sobre cargas com falha é sugerir ao próximo leitor que o rápido ciclo de edição-salvar-recarregar pode não funcionar e manter o > 1 navegador à mão.

    
por 05.01.2015 / 21:54
2

Maybe I am tired. Maybe I am just stupid.

Claramente cansado.

Não me lembro da sua configuração exata antes da edição, mas com base nisso no teste que você executou:

RewriteCond %{HTTPS} =on    This condition was not met
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [L,R=301]    This rule was not met because one of the conditions was not met
RewriteCond %{REQUEST_FILENAME} !-f This variable is not supported: %{REQUEST_FILENAME}
RewriteCond %{REQUEST_FILENAME} !-d

você parece ter a seguinte regra e condições:

RewriteCond %{HTTPS} =on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [L,R=301]

Se você olhar depois de descansar, fica claro que não é o que você quer.

RewriteCond %{HTTPS} =on

Significa executar a regra se a solicitação for httpS. Então você quer:

RewriteCond %{HTTPS} =off
    
por 04.01.2015 / 23:51

Tags