http para https através do .htaccess

Eu já dei uma olhada nas perguntas existentes, mas não encontrei nada que funcione para mim.

Atualmente estou executando um site com um certificado SSL seguro. Ele pode ser acessado em https://www.example.co.uk. Um problema é que o site também pode ser acessado em http://www.example.co.uk – não quero que isso seja possível. Eu preciso redirect de http para https.

Eu encontrei este snippet de código para usar em um arquivo .htaccess.

Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^example.co.uk [NC] RewriteRule ^(.*)$ https://example.co.uk/$1 [L,R=301] 

Isso funciona bem quando o usuário digita example.co.uk em sua barra de endereços, mas eu também preciso adicionar uma declaração condicional de algum tipo para que, se o usuário digitar ‘www.example.co.uk’ ou ‘ http: // www.example.co.uk ‘.

Eu tentei usar os gostos de [OR], mas isso acaba criando erros no servidor.

Qualquer ajuda e sugestões é apreciada.

Felicidades.

Tente o seguinte:

  RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L] 

Além disso, você também pode redirect com base no número da porta, por exemplo:

  RewriteCond %{SERVER_PORT} ^80$ RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L] 

Isso redirectá todas as solicitações recebidas na porta 80 para HTTPS.

Adicione o seguinte código no arquivo .htaccess.

 RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.example.com/$1 [R,L] 

altere example.com com o domínio do seu website

O tutorial de redirecionamento de URLs pode ser encontrado aqui – Redirecione não-www para www e HTTP para HTTPS usando o arquivo .htaccess

Tente isso, eu usei e funciona bem

 Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

Tente isto:

 RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L] 

Fonte: https://www.ndchost.com/wiki/apache/redirect-http-to-https

(Eu tentei tantos blocos diferentes de código, esse 3 liner funcionou perfeitamente)

Eu tento todo o código acima, mas qualquer código não está funcionando para o meu site.então eu tentei este código e este código está funcionando perfeito para o meu site. Você pode usar a seguinte regra no htaccess:

  Options +FollowSymLinks RewriteEngine On //Redirect http to https RewriteCond %{SERVER_PORT} 80 RewriteCond %{HTTP_HOST} ^(www\.)?example\.com RewriteRule ^(.*)$ https://www.example.com/$1 [R,L] //Redirect non-www to www RewriteCond %{HTTP_HOST} ^example.com [NC] RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]  

Altere example.com com seu nome de domínio e desculpe pelo meu inglês ruim.

Para redirect http://example.com ou http://www.example.com para https://www.example.com maneira simples, você pode usar a seguinte regra no htaccess:

 RewriteEngine on RewriteCond %{HTTPS} off RewriteCond www.%{HTTP_HOST} ^(?:www\.)?(www\..+)$ [NC] RewriteRule ^ https://%1%{REQUEST_URI} [NE,L,R] 

[Testado]

A variável % {REQUEST_SCHEME} está disponível desde o apache 2.4, esta variável contém o valor do esquema solicitado (http ou https), no apache 2.4 você pode usar a seguinte regra:

 RewriteEngine on RewriteCond %{REQUEST_SCHEME} ^http$ RewriteCond %{HTTP_HOST} ^(www\.)?(.+)$ [NC] RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [NE,L,R] 

Existem formas melhores e mais seguras de garantir que todo o tráfego passe por https . Por exemplo, configurar dois hosts virtuais e redirect todo o tráfego do seu http para o seu host https . Leia mais sobre isso nesta resposta aqui em security.stackexchange.com .

Com a configuração de um host virtual para redirecionamento, você pode enviar um status 301 (redirect permanentemente) para que o navegador entenda que todas as solicitações a seguir devem ser enviadas para o servidor https para o qual foi redirecionado. Portanto, nenhuma solicitação adicional de http será feita após a primeira resposta de redirecionamento.

Você também deve verificar cuidadosamente as respostas dadas, pois com o conjunto de regras de reescrita errado, você pode perder os parâmetros de consulta de suas solicitações recebidas.

Se você quiser redirect HTTP para HTTPS e quiser adicionar www com cada URL, use o htaccess abaixo

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

primeiro redirectá HTTP para HTTPS e redirectá para www.

Para mim, trabalhe APENAS esta variante:

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

Obrigado https://www.reg.ru/support/hosting-i-seria/sajty-i-domeny/kak-dobavit-redirekt/redirekt-s-http-na-https (em russo)

 # Switch rewrite engine off in case this was installed under HostPay. RewriteEngine Off SetEnv DEFAULT_PHP_VERSION 7 DirectoryIndex index.cgi index.php # BEGIN WordPress  RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]  # END WordPress # RewriteCond %{HTTP_HOST} ^compasscommunity.co.uk\.com$ [NC] # RewriteRule ^(.*)$ https://www.compasscommunity.co.uk/$1 [L,R=301] 

Como esse é um dos principais resultados da pesquisa, se você estiver tentando adicionar http ao redirecionamento https no AWS Beanstalk, a solução aceita não funcionará. Você precisa do seguinte código:

 RewriteCond %{HTTP:X-Forwarded-Proto} =http RewriteRule ^.*$ https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]