Redirecionamento Condicional do Apache HTTP para HTTPS

1

tudo. Eu tenho um problema de sintaxe. Eu tentei seguir outras fontes, mas não está funcionando.

Eu criei com sucesso um redirecionamento HTTP para HTTPS incondicional. Vá para o link , termine em HTTPS. Tudo bem e bem lá.

Mas agora meu certificado parece precisar de HTTP. Ele está usando o Let's Encrypt e, portanto, precisa de renovação a cada 90 dias. Com o redirecionamento em vigor, uma execução a seco falha. Com o redirecionamento desligado, a corrida a seco é bem-sucedida.

Então, tentei colocar um RewriteCond para isentar o tráfego de renovação do certificado:

# HTTP to HTTPS redirect
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{Request_URI} !^./acme-challenge/*
RewriteRule (.*) https://www.robjvargas.com$1 [R,L]

Apenas não funciona. Acho que estou sentindo falta de algo digno de um tapa na testa quando vejo, mas não estou vendo. Com o código acima, o redirecionamento HTTP para HTTPS ainda parece universal. Então, claramente, o RewriteCond está incorreto. O período antes do URI provavelmente está errado, mas eu tentei tanto com e sem isso.

Eu também coloquei o URI completo no RewriteCond, mas isso também não o isentou.

Estou perto. Eu não recebo nenhum erro. Apenas nunca cumpre a condição pretendida.

O que estou perdendo?

    
por Rob Vargas 26.02.2018 / 15:45

1 resposta

0

But now my certificate seems to need HTTP.

Isso não está correto. Eu pessoalmente estou renovando mais de https. Para que isso funcione, no entanto, você precisa garantir o acesso ao URI de desafio em seu https VirtualHost, copiando a parte relevante do http VirtualHost. Se você não puder ou não quiser fazer isso, veja como fazer isso funcionar com http com o redirecionamento condicional que você começou a escrever.

O problema é que seu regex atual corresponderia ao desafio uri. De acordo com o Apache Docs , o REQUEST_URI começa com o / então você deve procurar o desafio uri assim: ^\/\.well-known\/.*$ . Isso corresponderá ao desafio URI ( link ).

Todos juntos:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^\/\.well-known\/.*$
RewriteRule (.*) https://www.robjvargas.com/$1 [R,L]

Em caso de problemas futuros, use: testador htaccess

    
por 26.02.2018 / 17:33