WordPress wp-admin https yönlendirme döngüsü


60

Web sunucum olarak nginx kullanıyorum ve yapılandırma dosyasını https'e yönlendirmek için düzenledik, bu yüzden WordPress url ayarlarını https olarak değiştirdim ve ayrıca WordPress ssl admin kodunu wp-config dosyasına ekledim ama hataya devam ediyorum " Bu web sayfasının bir yönlendirme döngüsü var "

görüntü tanımını buraya girin

Yanıtlar:


98

Sen ettik eklendi $_SERVER['HTTPS'] = 'on';wp-config.php ?

Ayrıca geçiş yapmak için WP Migrate DB eklentisini de kullanmalısınız http://yoursite.com.https://yoursite.com


9
Sana bunun için 1000 dolar veririm!
Sheharyar

5
Bazı nedenlerden dolayı, bu hayati adım çok sık dahil edilmez.
Tania Rascia

4
Teşekkür ederim! Bu muhtemelen yönetici alanın neden SSL ile çalışmadığını anlamaya çalışmaktan birkaç saat daha kurtardı.
Kızak Çekiç

4
Vaov! $ _SERVER ['HTTPS'] = 'açık'; beni kurtardı!
PJunior

2
Bu neden işe yarıyor? Interconnect'in S&R aracını zaten kullandım. Veritabanında doğru protokole sahip olmalıyım.
Jeff,

51

Benzer bir sorun yaşadım ve aşağıdaki snippet'i de ekledim wp-config.php:

/** SSL */  
define('FORCE_SSL_ADMIN', true);  
// in some setups HTTP_X_FORWARDED_PROTO might contain  
// a comma-separated list e.g. http,https  
// so check for https existence  
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)  
    $_SERVER['HTTPS']='on';

Kodeks'te önerildiği gibi . Bu, yalnızca yük dengeleyici (veya güvenlik duvarı) kurulumunuzda etkinleştirilmiş SSL geçişi olması durumunda gerekli olacaktır. Yani siteye TLS / SSL ile HTTP üzerinden erişebilseniz de, sunucunuzun aldığı iletişim sadece HTTP'dir. WordPress HTTPS "set" böylece başlık ihtiyaç duyulan yukarıdaki, bunun hesabını oniçinde $_SERVERyapılandırma dizisi.


2
Bu, özellikle yük dengeleyici kullanan herkes için mükemmel bir çözümdür. Bunu Dokku (Heroku'nun bir ana bilgisayar klonu) kullanarak ve statik kaynak yükleme ve wp-admin yönlendirme döngüsünde sorun yaşıyordum. Dokku ayrıca gelen 443 trafiğini 80 numaralı bağlantı noktasına iletmek için bir nginx ters proxy'si kullanıyor ve bu sorunu çözüyor.
ZachM

3
Sadece koymak zorundaydım $_SERVER['HTTPS'] = 'on';çünkü HTTP_X_FORWARDED_PROTO müşterimin sunucusundaki ayarlarda bile değil: |
Tom Roggero

1
AWS yük dengeleyici kullanırken sorunum mükemmel bir şekilde düzeltildi.
Josh

Bu aynı zamanda, sitem AWS'deki bir yük dengeleyicisinin gerisinde kaldığı için "Çok fazla yönlendirme sorunu" düzeltildi.
17'de

Bu cevaba, bu gibi durumlarda .htaccess dosyasının düzeltmesini eklemenin önemli olduğunu düşünüyorum: stackoverflow.com/questions/36748110/… , @ harshal-lonare yanıtını kontrol edin.
Gustavo Jantsch 5:18

11

Henüz yorum ayrıcalığına sahip olmadığımdan, bu eki başka bir cevap olarak göndereceğim:

Aşağıdakileri eklemek için Elias tarafından önerilen çözüm, wp-config.phpbenim için hile yaptı:

/** SSL */  
define('FORCE_SSL_ADMIN', true);  
// in some setups HTTP_X_FORWARDED_PROTO might contain  
// a comma-separated list e.g. http,https  
// so check for https existence  
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)  
    $_SERVER['HTTPS']='on';

Ancak bu dosyadaki her şeyden önce koyduğumda sadece benim için çalıştı !


1
Sorunum tam olarak buydu. Bunları dosyanın sonuna koydum ve işe yaramadı. Sitemi sıfırdan inşa etmeye hazırdım. Onları en üste taşıdılar ve sorun çözüldü. Teşekkür ederim teşekkür ederim!!
Dean Poulin,

Cloudflare benzeri bir proxy DNS arkasında esnek bir SSL kullanıyorsanız bu çözüm mükemmeldir. Teşekkür ederim.
Stefan P

Çalışma onayladı. Çok teşekkür ederim, bu API ve IFrames ile ilgili bir çok problemi düzeltir. Sitede HTTPS etkin değil, ancak açık olması için bazı sayfalara ihtiyacımız var. Wordpress bunu varsayılan olarak bir ayar olarak almalı ...
Andy

FYI - bu kod herhangi bir yerde olabilir ama daha önce require_once( ABSPATH . 'wp-settings.php' );dosyanın sonunda olması gerekir.
Damodar Bashyal

7

Kitaplar için başka bir sürüm, bunu wp-config.php dosyasının üstüne ekleyin.

Sebep, yük dengeleyici veya uygun https değeri boyunca geçmeyen bir şey olabileceğidir, bu yüzden başka bir yerden alıp wordpress için sahte yapmak zorundasınız.

if ( (isset($_SERVER['HTTP_X_FORWARDED_PORT'] ) && ( '443' == $_SERVER['HTTP_X_FORWARDED_PORT'] ))
    || (isset($_SERVER['HTTP_CF_VISITOR']) && $_SERVER['HTTP_CF_VISITOR'] == '{"scheme":"https"}')) {
    $_SERVER['HTTPS'] = 'on';
}

0

Aslında ... Bu sorun vardı ve çözme oldukça kolay ve utanç verici oldu. Her nasılsa webhost üzerinde wp-admin klasörüm silindi ve bu yüzden aynı hata mesajı ile wp-admin olmadı.

Saatler süren testlerden sonra birçok farklı yol gördüm ve bunu tekrar indirip tekrar yüklediğimde hepsi normal olarak çalıştı.

Kontrol edin beyler, bu kadar basit olabilir.


0

5 Yıllık Soru ...

Tamam, ben SSL Sertifikası yükleme ve were tüm bağlantıları değiştirdikten sonra, bu hatayla httpiçin httpsbulunan wp-cli.phar kullanarak burada .

Çeşitli yapılandırmaları denedim ve ayarlamadığım sürece hiçbiri bunu çözmedi.

define('FORCE_SSL_ADMIN', true); 
define('FORCE_SSL_LOGIN', true);

buna:

define('FORCE_SSL_ADMIN', false);
define('FORCE_SSL_LOGIN', false);

Giriş sayfasına girmeme izin verdi, ancak daha sonra gerçekten giriş yapamadı. Cevap 2'yi denedim ama bu da maalesef yardımcı olmadı, Aşağıdaki değişikliği yapana kadar:

/** SSL */   
define('FORCE_SSL_ADMIN', true);
// in some setups HTTP_X_FORWARDED_PROTO might contain
// a comma-separated list e.g. http,https   
// so check for https existence   
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== true)  
     $_SERVER['HTTPS']='on';

Nedense, nedenini bilmiyorum - değiştirmek zorunda kaldım

! == yanlış

için

! == doğru

Nginx'i host olarak çalıştırıyorum ve proxy'yi nginx ünitesine geri gönderiyorum ... Bunun neden işe yaradığı hakkında bir fikri olan varsa, lütfen bana bildirin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.