2015-09-18 12 views
5

Stworzyłem moją aplikację WordPress na OpenShift i odpowiada ona na adres URL blog-porta8080.rhcloud.com.Pętla przekierowania z CloudFlare i OpenShift oraz aplikacją WordPress

stworzyłem 2 aliasy na OpenShift

enter image description here

kupiłem domenę (porta8080.com.br) od brazylijskich rejestratora, który nie pozwala mi dodać rekordy CNAME bez subdomeny jak www.

Więc stworzyłem konto na CloudFlare, zarejestrowałem moją domenę i przeniosłem moją domenę na serwery DNS CloudFlare.

enter image description here

Potem dodano 2 rekordy CNAME do CloudFlare

enter image description here

nawet zainstalowana wtyczka CloudFlare mówią mi pomoże

https://wordpress.org/plugins/cloudflare/

Ale kiedy idę do http://porta8080.com.br nie można załadować pliku p wiek z powodu błędu pętli przekierowania. Przetestowałem na chrome i na Firefoxie i obaj rzucają ten sam błąd. Chrome mówi „ERR_TOO_MANY_REDIRECTS” i kontroli wniosków, to daje mi kilka „301 Błąd: stałe przeniósł”

enter image description here

Strona wp-admin nie daje mi błąd. Jedyne, o czym mogę pomyśleć, to własny plik .htaccess.

To jest mój .htaccess (jeden w Openshift jest prawdopodobnie bez części blog/, po prostu zmienił odnośnik w obu i to uzyskany .htaccess na moim komputerze)

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase /blog/ 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /blog/index.php [L] 
</IfModule> 

# END WordPress 

ma jakieś pomysły?

@Edit

Istnieje problem w moim .htaccess na pewno. Skomentowałem to i umieściłem wiadomość na pliku indeksu, która trafia tam zarówno przez www, jak i bez niego.

Czy zgadniesz, dlaczego?

+0

udało Ci się to naprawić? Mam taki sam problem z aplikacją Rails na Openshift ... – stephenmurdoch

Odpowiedz

1

Jest to interesujący problem, gdy korzystasz z opcji elastycznego SSL CloudFlare obok WordPress. WordPress, w jego rdzeniu, ma funkcję is_ssl, która nie uwzględnia odwrotnych serwerów proxy. Dlatego po przekierowaniu do protokołu SSL można uzyskać a redirect loop if using Flexible SSL.

Najprostszym sposobem, aby to naprawić, jest install Mod_cloudflare na Apache.

Zamiast tego można dodać if do pliku wp-config.php, aby rozwiązać ten problem:

if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') { 
    $_SERVER['HTTPS'] = 'on'; 
} 

W przypadku korzystania z tej metody zamiast instalowania mod_cloudflare upewnić się, że korzystać z „X-Przekazano -Proto "zamiast protokołu SSL dla każdego przekierowania.