Saya telah ditugaskan untuk mengkonversi sekitar 100 situs dalam instance multisite saya ke HTTPS.
Saya dapat dengan mudah menulis skrip untuk menekan DB dan mengubah nilai siteurl
- home
nilai ke HTTPS, yang inturn harus memaksa situs untuk enqueue skrip dan gambar masa depan yang disematkan ke HTTPS kan?
Yah saya juga harus melalui semua post_content untuk tautan internal, serta gambar menggunakan HTTP dan mengonversinya menjadi HTTPS.
Saya mungkin bisa menyiapkan sesuatu untuk melakukan itu, tetapi saya bertanya-tanya apa lagi yang perlu saya ubah. GUID benar? Jika saya menggunakan perintah $ wpdb, apakah saya perlu melakukan reserialisasi DB sesudahnya?
Saya seharusnya bertanya dulu, apakah ada plugin yang andal yang akan menangani ini untuk saya? Apa lagi yang perlu saya ketahui tentang proses ini?
Catatan - Kami sudah memiliki semua sertifikat SSL, jadi itu sesuatu yang tidak perlu saya khawatirkan. - Server menjalankan linux (redhat) dan apache - Multisite menggunakan sub direktori - Saya tidak tahu banyak hal lain, server berada di luar yurisdiksi saya
http
kehttps
jika Anda tidak mengubah panjang string juga!Jawaban:
Anda dapat menjalankan skrip untuk MEMPERBARUI semua url dan panduan ke https, jika Anda ingin penyiapan yang bersih.
Tetapi juga pertimbangkan alternatif seperti:
Di wp-config.php untuk backend:
Di wp-config.php untuk frontend (atau jalankan skrip UPDATE db):
Maka Anda bisa menjalankan skrip untuk MEMPERBARUI semua url konten wp_posts.
sumber
Proses ini sebenarnya melibatkan pembelian Sertifikat keamanan dan menerapkannya ke server Anda untuk situs web Anda. Ini pada gilirannya akan memaksa semua orang yang mengunjungi ke koneksi aman melalui sertifikat yang disajikan oleh server Anda. Sertifikat ini disebut Sertifikat SSL: http://www.DigiCert.com/SSL-Certificates
sumber
Salah satu cara yang memungkinkan untuk melakukan modifikasi data ini adalah dengan menggunakan WP-CLI pada terminal.
Pertama-tama, Anda harus memastikan Anda memiliki cadangan dan strategi pemulihan yang solid jika terjadi kesalahan. Anda juga harus menguji prosedur ini di sistem lokal atau pengujian dengan salinan database langsung.
Langkah dasarnya adalah, untuk mengulangi setiap situs jaringan Anda dan mengganti URL setiap situs menggunakan
search-replace
perintah WP-CLI .Inilah bash one-liner:
Mari kita periksa:
Yang satu mulai loop untuk setiap baris output dari perintah di dalam
$()
dan menulis setiap baris dalam variabel$SITE
.Itulah WP-CLI
site list
perintah yang memberi Anda daftar semua URL situs dalam jaringan Anda. Jalankan perintah ini semata-mata, Anda mungkin akan melihat sesuatu seperti:Sekarang
hanya akan memulai bagian loop dalam.
Perintah inner loop melakukan semua keajaiban (saya membaginya menjadi dua baris menggunakan
\
agar mudah dibaca):Kami memberitahu WP-CLI untuk mencari untuk
$SITE
(misalnyahttps://your-site.tld/
) dan menggantinya dengan versi yang sedikit dimodifikasi:${SITE/http:/https:}
. Ini adalah pesta Menggantikan tali operasi yang menggantikanhttp:
denganhttps:
. (Jadi menyelesaikan variabel, perintahnya akan terlihat sepertiwp search-replace "http://your-site.tdl/" "https://your-site.tld/"
).search-replace
memiliki banyak opsi yang mungkin dijelaskan dalam dokumentasi . Dalam contoh saya menggunakan ini:--dry-run
dan--verbose
jelas membantu untuk menguji perintah.--network
berlaku pencarian dan ganti operasi juga ke tabel jaringan.--precise
memberitahu WP-CLI untuk menggunakan PHP dan bukannya SQL untuk mencari dan mengganti nilai. Itu memastikan nilai serial untuk tidak rusak.Akhirnya loop ditutup dengan
Biarkan saya menekankan lagi: menguji ini sebelum Anda mulai menggunakan ini pada produksi. Anda harus memahami cara kerjanya dan apa yang dilakukan WP-CLI. Saya menggunakan WP-CLI sebelumnya untuk melakukan searach tersebut dan mengganti operasi untuk memigrasi multisite ke nama domain lain, tetapi tidak untuk beralih dari
http
kehttps
.Mungkin ada beberapa kasus tepi: WP-CLI masih membaca
wp-config.php
dan mencoba menemukan «jaringan» yang cocok dalam database dengan menggunakan konstanta diwp-config.php
. Jika Anda memanipulasi satu situs (basis data) tetapi bukan yang lain (konstanta diwp-config.php
) Anda mungkin mendapat masalah. Tetapi untuk kasus Anda, saya pikir itu tidak akan menjadi masalah karena WP biasanya mengandalkanDOMAIN_CURRENT_SITE
danPATH_CURRENT_SITE
dan mereka tidak akan berubah pula. Tetapi sekali lagi, uji ini menyeluruh.Dengan sedikit sihir bash, Anda juga dapat membagi lingkaran ini menjadi potongan-potongan 5 atau 10 situs dan melewatinya langkah demi langkah.
sumber
Untuk memastikan semua situs web Anda menggunakan HTTPS di Anda
post_content
, Anda dapat melakukan salah satu dari dua opsi:1. Backend: menjalankan query SQL
Untuk memastikan bahwa semua tautan HTTP Anda diatur sebagai HTTPS, gunakan kueri SQL berikut:
OLD_URL
akan diganti denganhttp://example.com
(non-HTTP)NEW_URL
akan diganti denganhttps://example.com
(HTTPS)Ini akan mencakup
siteurl
,home
dan semua konten Anda di website Anda ke yang baru HTTPS.2. Frontend: gunakan plugin Search & Replace
Pendekatan yang lebih ramah pengguna adalah dengan menggunakan plugin Search & Replace untuk dengan mudah mengganti semua tabel yang berisi HTTP lama Anda dan mengubahnya menjadi HTTPS. Prosesnya mudah digunakan dan Anda dapat melihat pratinjau tabel dan baris apa yang akan terpengaruh sebelum menerapkan perubahan itu.
Peringatan
Sebelum menerapkan perubahan apa pun, saya pikir tidak perlu dikatakan untuk selalu membuat cadangan dari database Anda jika terjadi kesalahan.
sumber
HTTP adalah protokol default, yang digunakan oleh sebagian besar situs web untuk menangani informasi melalui web. Situs web Anda berjalan pada HTTPS tanpa pesan kesalahan, artinya sertifikat Anda telah dipasang dengan benar. Anda harus memigrasi seluruh situs web Anda dari HTTP ke HTTPS.
Pelajari cara memindahkan HTTP ke HTTPS untuk WordPress
sumber