Alihkan semua http: // permintaan ke https: //


22

Sebelumnya saya telah mengirimkan pertanyaan ini: /programming/36104047/how-to-redirect-all-http-requests-to-https-on-magento tetapi tidak mendapat reaksi.

Berikut ini adalah URL situs saya: www.trendy-mode.nl akan mengarahkan Anda ke: https://www.trendy-mode.nl/

Sekarang masalahnya adalah tautan menu atau sub-tautan lain tidak dialihkan dengan https://

EX:
Ada menu seperti - NIEUW | KLEDING | SCHOENEN | ACCESSOIRES dll.
Jika Anda mengklik menu NIEUW, halaman baru akan terbuka tetapi tidak diarahkanhttps://

Saya telah mencoba banyak. Htaccess tweak tetapi tidak berhasil. Adakah yang membantu saya dalam hal ini?

Terima kasih sebelumnya!

Jawaban:


30

Mengubah url basis tidak aman ke https akan mengubah semua tautan dan mengalihkan permintaan non-https ke https://example.com/ (halaman beranda), karena itulah yang dilakukan Magento ketika validasi URL dasar gagal.

Jadi ini adalah awal yang baik tetapi untuk juga mengarahkan kembali http://example.com/foo/ ke https://example.com/foo/ Anda perlu melakukannya melalui pengalihan webserver.

Misalnya, tambahkan kode berikut di bagian atas Anda .htaccess:

RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

Atau jika Anda menggunakan proksi terbalik seperti Varnish:

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

Ini karena permintaan dari Varnish ke Magento akan tanpa SSL (HTTP), tetapi Varnish menetapkan header X-Forwarded-Proto menjadi "https" jika permintaan asli dibuat dengan SSL (HTTPS).


@Abhishek Saya baru saja menguji situs Anda dan karena itu belum berfungsi - Instruksi Fabian di atas sudah benar .. tetapi juga harus mengatakan bahwa 2 baris ini harus ditambahkan ke file .htaccess di root instalasi magento Anda tetapi BUKAN di atas (umumnya ) tetapi seperti yang disebutkan di bawah, tepat setelah RewriteEngine On. Cara saya melakukannya hanya sedikit berbeda dengan baris kedua saya baca; RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Peter Svegrup

Adakah yang mengalami efek buruk pada peringkat halaman Google setelah memindahkan situs magento sepenuhnya ke https?
paj

10

Untuk kelengkapan kami juga melakukan hal yang sangat mirip dengan apa yang disarankan fschmengler dengan beberapa tambahan;

RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_METHOD} !=POST
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Kami menempatkan ini di dalam bagian .htaccess tepat di bawah RewriteEngine On


9

Atur url dasar Anda agar aman dan tidak aman di backend. Tetapkan ya saat menggunakan url aman di frontend di backend.

Kemudian edit aplikasi / etc / local.xml Anda dan sertakan ini

<?xml version="1.0"?>
<config>
  <frontend>
     <secure_url>
      <all>/</all>
     </secure_url>
   </frontend>
</config>

Atau setidaknya tempel frontend pohon XML dan lebih rendah di antara tag konfigurasi.


Ini memperbaiki masalah saya. Saya telah mengatur semuanya dengan benar tetapi beberapa url masih menggunakan http alih-alih https.
mutiemule

saya ingin mengarahkan url tertentu dari https ke http. jadi apakah Anda punya ide tentang itu?
Sarfaraj Sipai

5

Pastikan System > Configuration > Web > url_options > "Auto-redirect to Base URL = No". Itu diatur ke yes, dan menyebabkan masalah.

Masukkan kode di bawah ini dalam file .htaccess.

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

4

Saya pikir cara termudah adalah dengan mengubah url basis tidak aman ke https karena magento kemudian mengalihkan semua permintaan "tidak aman" ke url ini dan juga menghasilkan tautan dengan url ini.

Anda dapat mengubah url dasar di bawah sistem -> konfigurasi -> umum -> web


Terima kasih atas ulangan Anda .. saya berhasil tetapi sekarang jika Anda membuka tautan ini: www.trendy-mode.nl/damesschoenen/slippers ia akan mengarahkan Anda ke beranda. punya solusi?
Abhishek Kumbhani

hm itu aneh :) Apakah Anda keberatan dengan garis miring pada url dasar? Saya pikir masalah ini sangat menarik karena kemungkinan besar akan relevan untuk masa depan (atau mungkin sudah sekarang?) Untuk memiliki seluruh halaman menggunakan https. Saya bisa bertanya pada kolega saya besok karena dia sudah melakukan ini untuk toko
magento

walaupun solusi fschmengler seharusnya berfungsi, saya pikir, jawaban @Michael sepertinya cara yang tepat untuk melakukan ini jika berhasil
David Verholen

Yah jawaban fschmenglers tidak salah. Saya hanya jengkel dengan strategi pembaruan Magentos karena menyentuh .htaccess dan index.php tetapi tidak local.xml. Jadi lebih 'perbarui save' imho
Michael

2

The docs Apache merekomendasikan menggunakan penulisan ulang:

Untuk mengarahkan httpURL https, lakukan hal berikut:

 <VirtualHost *:80>
     ServerName www.example.com
     Redirect / https://www.example.com/
 </VirtualHost>

 <VirtualHost *:443>
     ServerName www.example.com
     # ... SSL configuration goes here
 </VirtualHost>

Cuplikan ini harus masuk ke file konfigurasi server utama, bukan ke .htaccessseperti yang ditanyakan dalam pertanyaan.

Artikel ini mungkin muncul hanya setelah pertanyaan diajukan dan dijawab, tetapi tampaknya cara saat ini untuk pergi.


0

Tambahkan kode ini di bagian atas file .htaccess

RewriteEngine On
RewriteCond %{HTTPS} off
# First rewrite to HTTPS:
# Don't put www. here. If it is already there it will be included, if not
# the subsequent rule will catch it.
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Now, rewrite any request to the wrong domain to use www.
# [NC] is a case-insensitive match
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.