Em um servidor apache 2.2 executando verniz, estou tentando redirecionar
http - > para https por um Drupal inteiro
Commons ( link ).
Como o verniz armazena alguns redirecionamentos (R = 301, mas não R = 302, eu
acho que, primeiro eu tenho o meu redirecionamento trabalhando em: 8080 que não é
servido por verniz.
O código .htaccess abaixo redireciona com sucesso
http: // foo.example.com:8080 para https: // foo.example.com. (Trabalho
no Chrome, FF e Safari.)
# RewriteBase /
### Standard Drupal7 .htaccess above here ###
# SSL REWRITES
RewriteCond %{SERVER_PORT} ^8080$
RewriteRule ^(.*)$ https://foo.example.com/$1 [NC,R=302,L]
### Standard Drupal7 .htaccess below here ###
# Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</IfModule>
Se eu
- Alterar 8080 no acima para 80
- salve o .htaccess
- reiniciar o verniz
- limpe o cache do Drupal
- limpe o cache do navegador
- visite http: // foo.example.com
(Eu religiosamente fiz o acima após cada edição para .htaccess.)
Eu recebo um loop de redirecionamento no Chrome, FF, Safari quando visito
http: // foo.example.com.
Em um esforço para entender o loop, alterei o redirecionamento da seguinte forma:
# SSL REWRITES
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^(.*)$ https://foo.example.com/$1/%{SERVER_PORT} [NC,R=302,L]
e eu tenho isso na minha barra de localização:
https: // foo.example.com/80/80/80/80/80/80/80/80/80/80/80/80/80/80/80/80/80/80/80/80/ 80
Quando o navegador é encaminhado para a URL https, não deve SERVER_PORT = 443 ???
Alterar para R = 301 resulta no mesmo loop.
Testar% {HTTPS} resulta no mesmo loop.
# SSL REWRITES
#RewriteCond %{SERVER_PORT} ^80$
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://foo.example.com/$1/%{HTTPS} [NC,R=301,L]
agora eu recebo isso na minha barra de localização:
https: // foo.example.com/off/off/off/off/off/off/off/off/off/off/off/off/off/off/off/off/off/off/off/off/ off
Por link (e link ) Eu também tentei:
# SSL REWRITES
RewriteCond %{SERVER_PORT} ^80$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ https://foo.example.com/$1/%{SERVER_PORT} [NC,R=301,L]
Tentei com e sem o! negação de -f e -d. De qualquer maneira, o
condição não corresponde, então nada acontece. Eu não sei porque estes
-f, -d testes seriam necessários ....
Eu também tentei remover a substituição da expressão regular no RewriteRule
# SSL REWRITES
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^.*$ https://foo.example.com/ [R=301,L]
isso ainda resulta em um loop.
Qualquer ajuda seria muito apreciada.