Pertanyaan Redirect loop dengan CloudFlare dan OpenShift dan aplikasi WordPress


Saya membuat aplikasi WordPress saya di OpenShift, dan merespon ke URL blog-porta8080.rhcloud.com.

Saya membuat 2 alias di OpenShift

enter image description here

Saya membeli domain saya (porta8080.com.br) dari registrar brazilian yang tidak mengizinkan saya menambahkan data CNAME tanpa subdomain seperti www.

Jadi saya membuat akun di CloudFlare, mendaftarkan domain saya dan memindahkan domain saya ke server DNS CloudFlare.

enter image description here

Lalu saya menambahkan 2 data CNAME ke CloudFlare

enter image description here

Saya bahkan menginstal plugin CloudFlare yang mereka katakan akan membantu saya

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

Tapi ketika saya pergi http://porta8080.com.br gagal memuat halaman karena kesalahan pengulangan loop. Saya menguji pada chrome dan Firefox dan keduanya melempar kesalahan yang sama. Chrome mengatakan "ERR_TOO_MANY_REDIRECTS" dan memeriksa permintaan, itu memberi saya beberapa "kesalahan 301: Dipindahkan Secara Permanen"

enter image description here

Halaman wp-admin tidak memberi saya kesalahan. Satu-satunya hal yang dapat saya pikirkan adalah file .htaccess miliknya sendiri.

Ini adalah .htaccess saya (yang ada di Openshift mungkin tanpa blog/ bagian, saya baru saja mengubah permalink di kedua dan itulah hasilnya. Htaccess pada mesin saya)

# 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

Punya ide apa saja?

@Edit

Ada masalah pada .htaccess saya pasti. Saya berkomentar dan menaruh pesan pada file indeks dan itu ada di sana baik oleh www dan tanpa itu.

Akankah Anda menebak mengapa?


5
2017-09-18 02:25


asal


Jawaban:


Ini adalah masalah yang menarik ketika Anda menggunakan opsi SSL Fleksibel CloudFlare di samping WordPress. WordPress, dalam intinya, memiliki is_ssl fungsi yang tidak memperhitungkan reverse proxy. Karena itu ketika Anda mengarahkan ke SSL Anda bisa mendapatkan loop pengalihan jika menggunakan SSL Fleksibel.

Cara termudah untuk memperbaikinya adalah dengan instal Mod_cloudflare di Apache.

Sebagai gantinya, Anda dapat menambahkan pernyataan if ke file wp-config.php Anda untuk menyelesaikan masalah ini:

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

Jika Anda menggunakan metode ini daripada menginstal Mod_cloudflare pastikan Anda menggunakan header "X-Forwarded-Proto" alih-alih SSL untuk pengalihan apa pun.


1
2017-07-27 13:40