2015-09-18 13 views
5

Ich habe meine WordPress-Anwendung auf OpenShift erstellt, und es reagiert auf die URL blog-porta8080.rhcloud.com.Redirect Loop mit CloudFlare und OpenShift und eine WordPress-Anwendung

Ich habe 2 Aliase auf Openshift

enter image description here

ich meine Domain gekauft (porta8080.com.br) von einem brasilianischen Registrar, der nicht mir erlauben CNAME-Datensätze ohne eine Sub-Domain wie www hinzuzufügen.

Also habe ich ein Konto bei CloudFlare erstellt, meine Domain registriert und meine Domain auf die CloudFlare DNS-Server verschoben.

enter image description here

Dann habe ich 2 CNAME-Datensätze zu CloudFlare

enter image description here

ich das Plugin sie CloudFlare selbst installiert sagen würde mich aber

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

helfen, wenn ich gehe zu http://porta8080.com.br es lädt nicht die p aufgrund eines Redirect-Loop-Fehlers. Ich habe Chrome und Firefox getestet und beide haben den gleichen Fehler. Chrome sagt „ERR_TOO_MANY_REDIRECTS“ und die Anforderungen Inspektion, es gibt mir mehrere „301-Fehler: Dauerhaft verschoben“

enter image description here

Die wp-admin-Seite nicht geben Sie mir einen Fehler. Das einzige, woran ich denken kann, ist eine eigene .htaccess-Datei.

Das ist mein .htaccess (der in Openshift ist wahrscheinlich ohne die blog/ Teile, Ich habe gerade den Permalink in beide und das ist die resultierende .htaccess auf meinem Rechner)

# 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 

Ideen Got?

@Edit

ein Problem auf meinem .htaccess sicher gibt es. Ich habe es kommentiert und eine Nachricht auf die Index-Datei geschrieben und es kommt sowohl von www als auch ohne es.

Würdest du raten warum?

+0

hast du es geschafft, das zu beheben? Ich habe das gleiche Problem mit einer Rails App auf OpenShift ... – stephenmurdoch

Antwort

1

Dies ist ein interessantes Problem, wenn Sie die flexible SSL-Option von CloudFlare neben WordPress verwenden. WordPress hat im Kern eine is_ssl-Funktion, die Reverse-Proxies nicht berücksichtigt. Wenn Sie also zu SSL umleiten, erhalten Sie a redirect loop if using Flexible SSL.

Der einfachste Weg, um dies zu beheben, ist install Mod_cloudflare auf Apache.

Stattdessen können Sie die hinzufügen if-Anweisung zu Ihrer Datei wp-config.php um dieses Problem zu beheben:

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

Wenn Sie diese Methode verwenden, statt der Installation mod_cloudflare sicherzustellen, dass Sie die „X-Forwarded verwenden -Proto "Header anstelle von SSL für Weiterleitungen.