redirecionamento inesperado do apache

2

Estou tentando fazer com que todas as versões http das minhas páginas redirecionem para a versão https. No entanto, estou tendo alguns problemas com o redirecionamento.

Eu quero que http://stackexchange.com/path/ seja https://stackexchange.com/path/ , mas esteja redirecionando para o link

Aqui está minha configuração para os hosts virtuais:

<VirtualHost *:80>
ServerName stackexchange.com
ServerAlias www.stackexchange.com   
Redirect / https://stackexchange.com/
</VirtualHost>

<VirtualHost *:443>
ServerName stackexchange.com
ServerAlias www.stackexchange.com
SSLEngine on
...            
    
por Mark 21.02.2014 / 10:58

2 respostas

2

Você geralmente pode fazer o HTTP - > Redirecionamento de HTTPS usando apenas mod_rewrite:

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

Geralmente, é melhor usar %{REQUEST_URI} vs. $1 .

Se, no entanto, você não quiser usar o mod_rewrite, ou não tiver esse módulo do Apache à sua disposição, você pode usar o redirecionamento da seguinte forma:

NameVirtualHost *:80
<VirtualHost *:80>
   ServerName mysite.example.com
   DocumentRoot /usr/local/apache2/htdocs 
   Redirect permanent / https://mysite.example.com/
</VirtualHost>

<VirtualHost _default_:443>
   ServerName mysite.example.com
  DocumentRoot /usr/local/apache2/htdocs
  SSLEngine On
 # etc...
</VirtualHost>

Referências

por 21.02.2014 / 11:52
1

Acho que você só precisa de mod_rewrite para essa finalidade:

<VirtualHost *:443>
ServerName stackexchange.com
ServerAlias www.stackexchange.com
SSLEngine on
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*) https://%{HTTP_HOST}/$1
...

Ative o mod_rewrite e reinicie o apache para aplicar as alterações.

    
por 21.02.2014 / 11:35