Como eu uso o .htaccess para sempre redirecionar de HTTP para HTTPS? [duplicado]

7

Há algumas perguntas semelhantes que tentei resolver a resposta, mas até agora não tive sucesso. Por favor, informe como eu sempre posso redirecionar http para https (e também remover www. do nome do host no processo). Além disso, seria bom fazer isso dentro do repositório principal do Apache, em vez de .htaccess - mas imagino que isso não se aplique à maioria das pessoas.

Atualização:

Adicionei este snippet a uma seção VirtualHost :

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

... mas não tem efeito quando eu acesso http://www.domain (ele deve redirecionar para https://domain )

Atualização 2:

Não teve efeito porque não usei RewriteEngine on - então funciona agora:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(.*)
RewriteRule ^.*$ https://%1/$1 [R=301,L]
    
por Nick Bolton 24.02.2010 / 12:52

5 respostas

3

Eu não usaria mod_rewrite , você pode conseguir isso simplesmente com mod_alias :

Redirect permanent / https://other-site

Onde 'other-site' é o nome do host para o qual você deseja redirecionar, omitindo o www. prefixo que você não deseja.

    
por 24.02.2010 / 13:21
17

Existem muitas soluções:

RewriteEngine On
RewriteCond %{HTTPS} !^on$
RewriteRule (.*) https://yourdomain/$1 [R,L]
    
por 24.02.2010 / 13:44
5

Se você estiver usando um balanceador de carga, precisará usar uma condicional diferente. Isso funciona para o AWS ELB:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    RewriteRule (.*) https://yourdomain.com/$1 [R=301,L]
</IfModule>
    
por 14.06.2013 / 16:10
4

duas soluções. adicione um deles ao seu .htaccess

RewriteEngine on
RewriteCondition %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L] 

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

Dos seus comentários, parece que você não está incluindo o mod_rewrite:

LoadModule rewrite_module modules/mod_rewrite.so
    
por 24.02.2010 / 13:12