Loop senza fine di reindirizzamento con sito AWS ELB e wordpress utilizzando il plugin https di wordpress

Ho configurato un AWS ELB per indicare al mio server di Ubuntu che esegue WordPress 3.2.1. Tutto funzionava ottimamente sul server finché non l'ho messo dietro ad un bilanciatore di carico.

Imposta il bilanciatore di carico per inoltrare la port 80 alla port 80 e la port 443 alla port 80.

Impostare il mio file host virtuale per controllare le intestazioni dal barbone:

RewriteEngine On
RewriteCond% {HTTP: X-Forwarded-Proto}! Https
RewriteRule! / Status https: //% {SERVER_NAME}% {REQUEST_URI} [L, R]

Ora, each volta che vado a un https url ho questo messaggio:

Questa pagina ha un ciclo di reindirizzamento
La pagina web a https://mywebsite.com/securepage/ ha provocato troppi reindirizzamenti

Non appena disattivo il plugin https di wordpress
( http://wordpress.org/extend/plugins/wordpress-https/ )
Le pagine funzionano ma sono ora piene di contenuti misti. le pagine che dovrebbero essere https non sono più https.

Non appena accedo direttamente al server anziché attraverso l'argilla, funziona nuovamente.

Qualche idea su come potessi get questo per lavorare con un AWS ELB?

  • Il mio sito è infettato da JS: ScriptIP-inf
  • Come ospitare un sito di Wordpress su più server a causa di problemi di siteload geografico?
  • Redirect root a sottocartella di WordPress sotto nginx
  • Alias ​​del server Con sottodominio di wildcard
  • La properties; dei dati www rende l'installazione di WordPress più memory
  • Limitare l'utilizzo di SSL a una sola directory in Apache
  • Problemi potenziali che utilizzano WordPress su WIMP e WAMP?
  • Attività sendmail anomale che utilizza la memory del server sul mio server Ubuntu 12.04
  • 3 Solutions collect form web for “Loop senza fine di reindirizzamento con sito AWS ELB e wordpress utilizzando il plugin https di wordpress”

    Potrei preoccupare di indovinare senza pubblicare la tua configuration ELB che l'ELB sta reindirizzando il traffico HTTPS (443 / tcp) all'istanza EC2 su HTTP (80 / tcp). Poi si è .htaccess e il plugin stanno cercando di reindirizzarlo indietro a HTTPS perché viene visto su HTTP.

    Vai a dare un'occhiata alla tua console EC2 in Network & Security > Load Balancers e immagino che vedrai che la Port Configuration della Port Configuration dice qualcosa lungo le linee di 443 forwarding to 80 (HTTPS, Certificate: blah)

    Provate ad aggiungere questo a httpd.conf o ad .htaccess

     SetEnvIfNoCase X-FORWARDED-PROTO "^https$" HTTPS 

    Quando si utilizza l'equalizzatore di carico + HTTPS, il tuo webserver non è a conoscenza del fatto che HTTPS viene utilizzato sul lato anteriore, quindi continua a tentare di redirect al sito HTTPS, quando in realtà HTTPS è già in uso.

    Quanto sopra tradurrà l'intestazione che Amazon Load Balancer invia ( X-Forwarded-Proto: https ) in una variabile di ambiente che WordPress e altri script PHP capiscono ( HTTPS=1 )

    Secondo Amazon qui https://d0.awsstatic.com/whitepapers/deploying-wordpress-with-aws-elastic-beanstalk.pdf la correzione è:

     /** Detect if SSL is used. This is required since we are terminating SSL either on CloudFront or on ELB */ if (($_SERVER['HTTP_CLOUDFRONT_FORWARDED_PROTO'] == 'https') OR ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) {$_SERVER['HTTPS']='on';} 

    Ho ancora finito con il ciclo infinito, quindi ho cambiato la mia configuration di WordPress da:

     define('WP_HOME','http://www.example.com'); define('WP_SITEURL','http://www.example.com'); 

    a:

     define('WP_HOME','https://www.example.com'); define('WP_SITEURL','https://www.example.com'); 

    Ciò obbligherà gli utenti a https, anche se digitano http, e rende più semplice lo sviluppo del sito offline perché si aggiorna solo WP_HOME all'host locale e https non è più il valore predefinito

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.