Dokumen Bantuan yang Lebih Baik
Ditulis dan diselenggara untuk jenama dan agensi yang sedang menjalankan migrasi laman. Terutamanya jika anda pasukan kecil yang perlu memanfaatkan setiap jam. Panduan ini membantu anda membina strategi untuk melengkapkan pengalihan 301 dengan tepat jika anda berpindah ke Shopify. Secara khusus, dokumen ini boleh membantu anda jika anda sedang:
- Berpindah daripada Wordpress
- Berpindah daripada Magento
- Berpindah daripada Salesforce
- Berpindah daripada Sitecore
- Berpindah daripada BigCommerce
- Berpindah daripada Webflow
- Berpindah daripada laman PHP buatan sendiri
Jika anda menjalankan projek yang melibatkan pemetaan pengalihan 301 yang rumit dan memerlukan pasukan yang benar-benar arif dalam kerja jenis ini, hubungi kami.
Logik Pengalihan URL Shopify: Gambaran Keseluruhan
Dokumen Bantuan rasmi Shopify untuk pengalihan URL boleh didapati di sini. Ia dokumen ringkas dengan garis panduan umum yang boleh dirujuk oleh pengurus kedai Shopify untuk menambah pengalihan 301 secara individu dan pukal. Ia tidak memperincikan jenis URL yang boleh disokong secara asli oleh kedai Shopify, dan laporan ini bertujuan mengisi jurang tersebut.
Ringkasan Penemuan tentang Fungsi Pengalihan URL Shopify
- Logik pengalihan URL Shopify sangat mantap.
- Daripada ujian kami ke atas 100 format string URL yang berbeza, Shopify menyokong 99 daripada 100 jenis itu secara fungsian.
- Laluan storefront yang benar-benar wujud sentiasa mengatasi pengalihan, secara senyap.
- Sistem asli tidak menyokong kad liar untuk pengalihan URL.
- Mengemas kini laluan pengalihan URL sedia ada mudah dengan alat import, asalkan anda mengikut peraturan Shopify yang tidak didokumenkan
- Had wujud pada jumlah bilangan pengalihan yang akan diurus oleh kedai Shopify & ShopifyPlus.
- Had wujud pada jumlah bilangan aksara untuk string pengalihan URL.
- Pencegahan rantaian hanya separa. Shopify menyekat satu arah, dan susunan penciptaan masih boleh meninggalkan rantaian yang aktif.
- Banyak pengecualian dan peraturan wujud untuk URL yang mempunyai parameter.
- Antara muka pengurusan pengalihan URL mesra pengguna, tetapi boleh diperbaiki dengan lebih banyak butiran.
- Ujian tidak meneliti pilihan pengalihan yang tersedia untuk Hydrogen dan Oxygen.
- Kami memberikan sistem pengalihan URL Shopify semasa skor kebergunaan 85%.
Penilaian itu diturunkan sebanyak 5% kerana tiada sokongan kad liar, 1% kerana satu jenis string URL yang tidak disokongnya, 2% kerana had panjang aksara URL, 3% kerana tingkah laku ganjil dengan URL berparameter, dan 4% kerana butiran pengurusan maklumat penting yang tiada dalam UX pengalihan.
Mula diuji pada 19 Jun 2024. Diuji semula pada 27 Julai 2026 terhadap kedai Shopify pelan standard yang aktif, melalui Admin GraphQL API dan terhadap permintaan storefront langsung. Apa yang berubah antara kedua-duanya disenaraikan dalam log perubahan.
Metodologi Ujian Pengalihan Kami
Kami mahu menjawab beberapa soalan dengan ujian kami, untuk membantu mengelakkan perangkap dalam peraturan pengalihan 301 Shopify:
- Aksara atau gabungan string apakah yang tidak disokong oleh sistem pengalihan URL?
- Adakah terdapat sebarang had pada panjang string URL?
- Adakah terdapat bilangan rekod maksimum untuk import pukal?
- Adakah sistem menyokong pengalihan kad liar?
- Adakah terdapat sebarang auto-format atau penukaran string selepas import yang mengubah data asal?
Sebagai rujukan, inilah senarai penuh URL kami yang kami gunakan untuk menguji keadaan yang berbeza ini. Ujian dijalankan pada pelan Shopify standard (bukan ShopifyPlus).
11 Penemuan untuk Membantu Pengalihan Shopify
Shopify Tidak Serasi Dengan Jenis String URL Ini
Satu format string daripada seratus yang kami uji tidak boleh dialihkan dengan boleh dipercayai. Shopify menerima rekod itu dan menyimpannya, tetapi pelayar yang memintanya mendapat 404. Ia string yang membawa koma bertitik selepas operator sama dengan, seperti:
/page?param=;semicolon
Apa yang menarik tentang string ini ialah sistem Shopify akan menukar aksara khas koma bertitik kepada nilai berkod URL seperti berikut dalam jadual pengalihan:
/page?param=%3Bsemicolon
Apabila anda memasukkan string URL yang tidak dikodkan ke dalam bar alamat pelayar, ia akan mengembalikan ralat 404.
/page?param=;semicolon
/page?param=%3Bsemicolon
Fungsi ini menyimpang daripada pengendalian aksara khas yang lain. Jika string URL dengan aksara tanpa pengekodan dimasukkan dalam bar alamat, seperti aksara kurungan dakap kanan:
/page?param=}
Shopify akan mengekodnya secara automatik apabila permintaan URL diterima dan tiada ralat 404 akan berlaku.
/page%7Drightbrace
Turut menarik, variasi lain string URL dengan koma bertitik tanpa pengekodan disahkan dalam sistem pengalihan Shopify seperti:
/page;semicolon
404 hanya dicetuskan apabila koma bertitik tanpa pengekodan muncul selepas operator sama dengan, dan kegagalan berlaku pada waktu permintaan dan bukan semasa import. Shopify menyimpan rekod itu dengan koma bertitik dikodkan peratus sebagai %3b, dan URL masuk yang membawa koma bertitik mentah tidak pernah sepadan dengan rekod yang dikodkan itu. Meminta bentuk yang dikodkan mengembalikan 301 seperti biasa, jadi di tempat anda mengawal pautan masuk, mengekod peratus koma bertitik itu menyelesaikannya. Di tempat koma bertitik mentah tiba daripada pautan luaran yang tidak anda kawal, format ini tidak boleh dialihkan dengan boleh dipercayai.
Tiada Sokongan untuk Pengalihan Kad Liar daripada Shopify
Pengalihan kad liar masih berada dalam senarai hajat ramai pengguna Shopify. Forum sokongan mereka dibanjiri permintaan untuk ciri ini. Sehingga kini Shopify kekal senyap tentang di mana kedudukannya dalam peta jalan produk mereka.
Buat masa ini, pemilik laman web yang merancang untuk berpindah ke Shopify harus memahami bahawa Shopify & ShopifyPlus asli tidak menawarkan pilihan ini.
Apakah pengalihan kad liar?
Pengalihan kad liar ialah sejenis pengalihan URL yang membolehkan anda mengalihkan berbilang URL yang sepadan dengan corak tertentu ke satu destinasi. Ia amat berguna semasa memindahkan laman web, menyusun semula kandungan, atau mengurus URL serupa dalam jumlah besar. Daripada menyediakan pengalihan individu untuk setiap URL, anda menggunakan aksara kad liar (biasanya *) untuk mewakili sebarang urutan aksara.
Andaikan anda menyusun semula blog anda dan memindahkan semua pos daripada direktori /blog/ ke /articles/. Daripada menyediakan pengalihan individu untuk setiap pos blog, anda boleh menggunakan pengalihan kad liar:
From: /blog/*
To: /articles/*
This wildcard redirect will automatically map:
/blog/post1 to /articles/post1
/blog/post2 to /articles/post2
/blog/post3 to /articles/post3
Ini memudahkan proses pengalihan dan memastikan semua URL di bawah /blog/ dialihkan dengan lancar ke lokasi baharunya di bawah /articles/. Kedai lalai Shopify dan ShopifyPlus tidak menyertakan keupayaan ini tanpa sokongan aplikasi.
Bahagian yang merugikan trafik ialah Shopify menerima sintaks kad liar tanpa sebarang aduan. Rekod yang dicipta sebagai /old-blog/* tersimpan, muncul dalam jadual pengalihan, dan tidak melaporkan sebarang ralat. Tanda bintang disimpan sebagai aksara literal, jadi satu-satunya URL yang akan dipadankannya ialah URL yang benar-benar mengandungi tanda bintang. Itu lebih buruk daripada penolakan terus, kerana tiada apa-apa yang memberi isyarat kegagalan sehingga trafik sebenar mula mengembalikan 404. Kembangkan sebarang kad liar dalam fail pengalihan anda kepada laluan eksplisit sebelum anda mengimportnya.
Shopify Berusaha Sedaya Upaya Mengelakkan Pembentukan Rantaian Pengalihan
Shopify mempunyai perlindungan terhadap rantaian, dan batasannya berbaloi difahami sebelum anda mempercayainya. Ia menolak pengalihan yang destinasinya sudah menjadi sumber kepada pengalihan lain, dengan Target can't redirect to another redirect. Ia menolak pengalihan yang menunjuk kepada dirinya sendiri, dengan Target can't be the same as path, dan ia menyekat gelung dua hala secara langsung.
Dalam ujian ini, rekod URL yang kami cuba cipta adalah seperti berikut, yang tidak dibenarkan:
/BOTH redirects to /SHORT/SHORT redirects to /homepage
Apa yang tidak dilakukan oleh perlindungan itu ialah menyemak arah sebaliknya. Cipta /a ke /b sewaktu tiada apa-apa wujud di /b, kemudian cipta /b ke /c, dan kedua-duanya diterima. Shopify tidak pernah menyemak semula rekod pertama, dan anda mempunyai rantaian yang aktif:
GET /a
301 to /b
301 to /
final: 200, 2 hops
Susunan penciptaan sahaja yang menentukan sama ada rantaian terbentuk. Import pukal menggunakan baris mengikut susunan fail, dan fail migrasi jarang disusun untuk mengelakkan hal ini, jadi perlindungan itu bukan sesuatu yang boleh diharapkan semasa merancang. Selepas sebarang import besar, ambil sampel pengalihan anda dan kira bilangan lompatan:
curl -sIL https://yourstore.com/old-path -o /dev/null -w "hops: %{num_redirects}
"
Apa-apa melebihi 1 ialah rantaian.
Apakah Rantaian Pengalihan?
Rantaian pengalihan berlaku apabila satu URL dialihkan ke URL lain, yang seterusnya mengalih pula ke URL yang lain, lalu mewujudkan urutan atau “rantaian” pengalihan. Ini boleh berlaku tanpa sengaja apabila banyak pengalihan disediakan dari masa ke masa tanpa pengurusan yang betul.
Rantaian pengalihan bermasalah kerana ia boleh melambatkan masa muat halaman, menjejaskan SEO, dan mewujudkan pengalaman pengguna yang buruk. Setiap pengalihan tambahan menambah kependaman kerana pelayar perlu mengikut setiap langkah dalam rantaian itu sebelum sampai ke destinasi akhir.
Sebagai contoh, jika anda mempunyai pengalihan berikut:
/old-page redirects to /new-page
/new-page redirects to /latest-page
Apabila pengguna melawat /old-page, mereka mula-mula dialihkan ke /new-page, dan kemudian dialihkan semula serta-merta ke /latest-page, lalu menghasilkan rantaian pengalihan.
Peraturan Baharu yang Perlu Diikuti Semasa Menyediakan Pengalihan pada Shopify
Penemuan terbesar kami dalam ujian ini ialah dokumentasi Shopify sudah lapuk, dan peraturan sebenar di sebaliknya lebih ringkas daripada senarai awalan terpelihara yang didokumenkan.
Laluan storefront yang benar-benar wujud sentiasa mengatasi pengalihan. Di tempat halaman benar-benar wujud pada sesuatu URL, Shopify menyajikan halaman itu dan mengabaikan pengalihan. Rekod itu diterima, ia duduk dalam jadual pengalihan anda, dan ia tidak melakukan apa-apa. Tiada ralat, tiada amaran. Awalan bukan pemboleh ubahnya. Kewujudan laluan itulah pemboleh ubahnya:
/products/ai-skillset-package-001 -> 200, the product page
/products/zz20260727 -> 301, the redirect fires
Awalan yang sama, hasil yang bertentangan. Itu merangkumi setiap produk, koleksi, halaman dan artikel blog yang aktif di kedai anda, bukan sekadar empat laluan yang didokumenkan Shopify. Pengalihan pada URL produk yang diterbitkan adalah lengai sehingga produk itu berhenti diselesaikan, yang menjadikan urutan penting semasa migrasi: nyahterbit atau padam sumber lama dahulu, kemudian sahkan pengalihan itu berfungsi.
Menurut Shopify, jika anda cuba mengalihkan apa-apa yang bermula dengan awalan terpelihara ini, peraturan pengalihan anda tidak akan dicipta:
/apps
/application
/cart
/carts
/orders
/services
/products
/collections
/collections/all
Kami mendapati itu tidak benar.
/apps/application/carts/orders/services/cart/people
Cart ialah pengecualian. Ia terpelihara secara bersendirian, dan berfungsi setelah diikuti subdirektori.
/cart/products/collections/collections/all
/cart/people/carts/people/products/people/collections/people
/cart/products/collections/collections/all
/services ialah pengecualian dalam kumpulan ini, dan ia berkelakuan bertentangan dengan yang lain. Pengalihan pada /services itu sendiri mengembalikan 301. Pengalihan pada apa-apa di bawahnya, seperti /services/consulting, mengembalikan 404 walaupun rekod itu tersimpan tanpa sebarang aduan. Kami menguji semula perkara itu empat kali dalam tempoh kira-kira 45 saat untuk menolak kemungkinan kelewatan penyebaran, dengan rekod itu hadir dalam jadual sepanjang masa. Setiap awalan lain dalam kumpulan ini berfungsi dengan subdirektori.
Punca yang berkemungkinan ialah Shopify melalukan /services/* secara dalaman untuk proksi aplikasi dan titik akhir sistem, jadi permintaan itu tidak pernah sampai ke jadual pengalihan, walaupun kami tidak mengesahkan mekanismenya secara langsung. Jika anda memindahkan laman yang mempunyai bahagian /services/, tiada satu pun daripada pengalihan itu akan berfungsi. Petakan semula ke struktur laluan yang berbeza, atau uruskannya pada lapisan DNS atau proksi anda.
Mencipta dan Mengemas Kini Pengalihan URL Mudah pada Shopify
Penciptaan pengalihan baharu adalah mudah pada Shopify. Mereka memberi pengguna dua pilihan:
- Penciptaan pengalihan URL secara individu, satu demi satu
- Penciptaan pengalihan secara pukal, melalui fail CSV - inilah templat terkini untuk import itu.
Apabila menambah URL ke sistem Shopify, pengguna boleh memasukkan laluan URL relatif, tanpa domain peringkat atas, untuk asal (from) dan laluan URL mutlak atau relatif dalam destinasi (to). Contoh:
/example_product.php
Mencipta Pengalihan URL Secara Individu
Peraturan pengalihan yang ada pada Shopify tidak akan membenarkan anda mencipta pengalihan URL yang sama dua kali apabila menggunakan antara muka pengalihan individu.
Setelah sesuatu URL berada dalam senarai jadual ‘Redirect from’, jika anda cuba menambahnya semula anda akan mendapat ralat.
Jika anda mahu mengemas kini rekod URL individu, anda perlu mencarinya dalam jadual pengalihan, atau gunakan kaedah import pukal. Jika URL yang sudah wujud disertakan dalam fail import pukal, medan ‘Redirect to’ rekod itu akan dikemas kini dengan nilai daripada fail CSV.
Nasihat kami adalah sentiasa mengimport pengalihan dalam kelompok yang terurus dan cekap. Sebagai contoh, jika anda mempunyai 10,000 pengalihan URL, import 1,000 pada satu masa dan semaknya jika anda ada masa. Lebih baik menangkap ralat dalam set data yang lebih kecil daripada memburunya dalam set yang lebih besar.
Berhati-hati dengan Pengalihan URL Pukal dalam Shopify
Untuk mencipta pengalihan pukal, isikan fail CSV dengan pengepala yang diperlukan Shopify, cipta pemetaan 1:1, dan pastikan semua URL diformatkan sebagai laluan relatif. Jika anda mencipta fail dengan laluan mutlak dalam medan ‘Redirect from’ atau ‘Redirect to’, Shopify akan mengambil tindakan sendiri. Berikut beberapa senario:
https://www.wislr.com/path/to/resource%20with
/path/to/resource%20with
www.wislr.com/unicode/test?value=%E2%9C%93%20co.wislr.com/mix/of%20encoded
/www.wislr.com/unicode/test?value=%E2%9C%93%20/co.wislr.com/mix/of%20encoded
wislr.com/nested/directory/structure?param1=value1
/wislr.com/nested/directory/structure?param1=value1
Kesimpulannya, semak semula fail import anda sebelum anda menggunakannya. Jika tidak, anda akan mencipta peraturan pengalihan URL yang tidak beroperasi seperti yang anda perlukan.
Jika rekod pengalihan sudah wujud dalam jadual dan nilai yang sama disertakan dalam fail import, Shopify akan mengemas kini rekod itu dengan data terkini daripada fail import. Pada pandangan kami ini amat membantu, asalkan anda memang mahu rekod itu dikemas kini. Ini satu lagi sebab untuk menyemak semula data anda.
Shopify tidak menguatkuasakan had baris bagi setiap fail. Satu import 1,051 baris berjalan tanpa sebarang kegagalan dalam 48 saat, iaitu kira-kira 1,300 baris seminit.
Kelompok sekitar 1,000 masih berbaloi digunakan, atas sebab yang berbeza daripada had keras. Fail yang lebih kecil gagal dengan lebih jelas. Jika import 20,000 baris tersasar, anda jauh kurang tahu baris mana yang menyebabkannya berbanding jika anda menjalankan dua puluh fail dan memerhati kiraannya. Baca createdCount, updatedCount dan failedCount selepas setiap import, kerana failedCount yang bukan sifar ialah satu-satunya isyarat yang anda dapat bahawa baris telah tercicir.
Laluan yang sudah ada dalam jadual pengalihan akan ditulis ganti destinasinya dan dilaporkan di bawah updatedCount, sambil mengekalkan id rekod asalnya. Itu menjadikan import CSV selamat untuk dijalankan semula, yang berguna di pertengahan migrasi. Ia juga bermakna fail yang sudah lapuk akan menulis ganti pembetulan yang anda buat secara manual sejak import terakhir, secara senyap.
Biar kami bina peta pengalihan anda.
Kami telah memetakan pengalihan melalui lebih 100 migrasi, termasuk perpindahan 27,000 URL ke Shopify Plus. Kami membina failnya dan mengesahkannya terhadap setiap had di halaman ini sebelum ia diimport. Selepas peralihan, kami sendiri membaca respons langsung itu dan bukan mempercayai apa yang dinyatakan oleh jadual pengalihan.
Had Shopify pada Rekod Pengalihan URL
Segala yang baik ada hadnya, dan peraturan pengalihan Shopify tidak terkecuali. Ada dua ambang untuk pengalihan URL.
Pelan Shopify (bukan Plus):
Maksimum 100,000 pengalihan URL
Pelan ShopifyPlus:
Maksimum 20,000,000 pengalihan
Kami tidak menguji had ini, itu memang melampau! Ini spesifikasi semasa yang didokumenkan untuk platform tersebut. Sila ingatkannya semasa anda merancang pengalihan anda dan mengutamakan URL teratas dari segi trafik dan hasil. Setahu kami Shopify tidak menaikkan had ini, walaupun ada rayuan berterusan daripada forum sokongan.
Had Shopify pada Aksara dalam URL
Di sinilah keadaan menjadi menarik dengan sistem pengalihan Shopify. Garis panduan rasmi daripada Shopify tidak menetapkan had aksara yang ketat.
Untuk mengesahkan had aksara URL bagi sesuatu pengalihan, kami mula-mula membina dan cuba mengimport string yang sangat panjang. Kami bermula dengan URL sepanjang 2,000 aksara, kerana pelayar boleh mengendalikan permintaan URI sehingga 2,083 aksara panjangnya. Inilah dia dalam segala keindahannya:
/2000aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBccccccccccccccccccccccccccccccccccccccccccccccccccccDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
Kaedah awal kami ialah mengimport URL 2,000 aksara menggunakan templat pengalihan pukal dan di situlah penggera Shopify berbunyi. Ambang yang kami temui secara rasmi ialah had 1,024 aksara untuk string pengalihan URL, termasuk awalan garis miring ‘/’.
- Passed URL 300 aksara
- Passed URL 600 aksara
- Passed URL 1,000 aksara
- Failed URL 2,000 aksara
Beberapa Peraturan Pengalihan Penting dan Tidak Didokumenkan tentang Shopify
Shopify akan menormalkan aksara abjad dalam string URL anda. Ini bermakna, sama ada anda memasukkan huruf besar atau huruf kecil, ia akan menyajikan permintaan URL bagi corak yang berbeza itu dengan cara yang sama. URL berikut semuanya akan pergi ke halaman yang sama, walaupun rekod individu wujud:
/CASE/TEST.html
/case/test.html
/Case/Test.html
String huruf kecil akan mendapat keutamaan berbanding yang lain:
/case/test.html
Dalam ujian kami, walaupun terdapat dua rekod unik untuk “Redirect from” dengan nilai “Redirect to” yang berbeza, halaman /about.html akan sentiasa disajikan bagi kedua-dua rekod itu:
#1
/Case/Test.html [redirect to] /homepage
#2
/case/test.html [redirect to] /about.html
Ia menarik dan berpotensi menjengkelkan bahawa Shopify membenarkan anda memasukkan semua nilai unik ini dalam jadual pengalihan dan hanya menyajikan satu daripadanya. Kami menasihatkan anda menyemak data anda dengan teliti jika anda rasa taksonomi URL anda boleh jatuh ke dalam corak ini sebelum mengimport ke Shopify.
Anda Boleh Menggunakan Laluan URL Mutlak untuk Pengalihan Shopify
Laluan URL mutlak untuk pengalihan anda tidak menjadi masalah menurut ujian kami, jika ia berada dalam medan “Redirects to”. Ia boleh menuju ke mana-mana URL yang anda mahu. Berikut satu contoh laluan URL yang akan mengalih ke profil LinkedIn apabila diminta:
[Redirect from]
/Case/Test.html
[Redirect to]
https://www.linkedin.com/wislr
Selain itu, dalam medan “Redirect to” Shopify tidak membuang domain peringkat atas, walaupun ia untuk kedai Shopify anda sendiri.
URL Berparameter
Dalam ujian kami Shopify mengekalkan URL yang mempunyai parameter, dengan beberapa pengecualian. Jika anda mempunyai URL yang telah diindeks dengan banyak string URL berparameter yang unik, string unik itu boleh ditambah ke jadual pengalihan Shopify dan pergi ke destinasi yang unik. Kami melakukan ujian ini dengan taksonomi biasa untuk URL jenis ini, iaitu parameter UTM. Sebagai contoh:
String URL ini berada dalam medan “Redirect from” jadual pengalihan dan sampai ke destinasi yang dimaksudkan:
/how-is-pkl?utm_campaign=301s+in+2024&utm_content=blue&utm_id=3012024&utm_medium=display&utm_source=google&utm_term=redirects
Kami mengubah suai string URL itu dan membuang parameter terakhir ‘&utm_term=redirects’, yang menghasilkan 404:
/how-is-pkl?utm_campaign=301s+in+2024&utm_content=blue&utm_id=3012024&utm_medium=display&utm_source=google
Tingkah laku ini dihasilkan semula dalam ujian lain dengan parameter berbeza sebagai nilai, yang mengesahkan bahawa Shopify melayan URL berparameter sebagai string literal. Mereka tidak memendekkan URL itu kepada URL asas jika anda membuang parameter daripada URL pengalihan, asalkan URL itu tidak wujud pada laman Shopify.
Untuk mengesahkan lagi perkara ini, kami menghalakan satu URL kepada dirinya sendiri, yang secara lalai tidak dibenarkan Shopify. Anda akan mendapat mesej ini:
Entri ini dibenarkan apabila parameter berada dalam medan “Redirect from”. Ia tidak membentuk gelung pengalihan, tetapi berdasarkan tingkah laku dalam pelayar, ujian kami menunjukkan bahawa Shopify mengabaikan rekod ini. Apabila URL “Redirect from” diminta, Shopify menyajikan string URL berparameter penuh, bukan halaman akar seperti yang dijangka dalam jadual:
Entri ini dibenarkan tetapi Shopify tidak akan menambah parameter itu pada halaman yang dimuatkan, seperti yang dijangka oleh peraturan tersebut. Ia hanya akan memuatkan URL akar.
Itu benar untuk laluan sumber berparameter. Di tempat laluan sumber pengalihan itu tidak membawa parameternya sendiri, apa-apa yang tiba pada permintaan akan dibawa terus ke destinasi:
GET /old-page -> 301 to /new-page
GET /old-page?utm_source=x -> 301 to /new-page?utm_source=x
Pengalihan tidak akan membuang parameter untuk anda. Membuangnya perlu berlaku pada lapisan di atas Shopify.
Pemadanan juga bukan perbandingan string secara literal. Shopify menormalkan kedua-dua rekod tersimpan dan permintaan masuk sebelum membandingkannya, jadi huruf besar kecil dan susunan parameter tidak penting. Terhadap rekod yang disimpan sebagai /page?doe&name=john, kesemua ?name=John&Doe, ?Doe&name=John dan ?name=john&doe mengembalikan 301. Apa yang penting ialah parameter mana yang hadir: setiap parameter dalam laluan tersimpan mesti muncul dalam permintaan, dan menggugurkan satu akan mengembalikan 404 dan bukan padanan separa.
Pemerhatian akhir kami tentang URL yang mempunyai parameter ialah Shopify akan menulis semula data yang anda berikan dalam sesetengah kes. Ya, Shopify akan menulis semula data URL yang anda berikan untuk sesetengah parameter.
Berikut contoh yang menunjukkan corak ini dalam ujian kami.
Data pengalihan asal yang diserap Shopify:
/test?name=John&Doe
Shopify menulis semula string itu untuk meletakkan ‘doe’ dahulu, dan menukarnya kepada huruf kecil:
/test?doe&name=john
Nilai turut ditukar kepada huruf kecil bersama kuncinya, jadi jadual pengalihan yang dibandingkan dengan fail asalnya akan kelihatan seolah-olah import itu telah merosakkan data.
Data pengalihan asal yang diserap Shopify:
/user?name=John&age=30&active=true
Shopify menulis semula string itu supaya parameter yang disenaraikan mempunyai susunan baharu:
/user?active=true&age=30&name=John
Ujian yang kami jalankan mencadangkan bahawa Shopify cuba menyusun parameter mengikut abjad. Kami tertanya-tanya sama ada ini pepijat memandangkan kami telah menentukan bahawa Shopify melayan URL berparameter sebagai string literal, jadi mengapa merosakkan peraturan itu dengan menulis semula susunan parameter. Buat masa ini, anda tidak akan pernah dapat string URL dengan berbilang nilai parameter mengekalkan strukturnya. Ini boleh membawa implikasi besar untuk sesetengah Sistem Pengurusan Kandungan.
Kemas Kini pada UX Pengalihan URL Shopify Diperlukan
Sepanjang penggunaan meluas kami terhadap alat pengalihan Shopify, kami mendapati diri kami menghargai sesetengah elemen dan merindui yang lain.
Kami menghargai ciri-ciri ini:
- Butang dan fungsi import pengalihan pukal
- Penapisan dan carian pantas untuk taksonomi URL
- Eksport URL
- Kemudahan mencipta satu URL
Kami mendapati alat ini kekurangan titik data dan fungsi ini:
- Jumlah kiraan URL yang diimport
- Cara yang lebih mudah untuk menyalin dan menampal lebih daripada satu URL ke dalam sistem. Jika anda menambah lebih daripada satu URL pada satu masa, anda perlu menggunakan dokumen import. Satu kes penggunaan di mana salin / tampal akan membantu ialah jika satu set URL semuanya bertujuan menghala ke destinasi yang sama.
Mengimport Adalah Pantas, Membatalkan Import Tidak
Mencipta pengalihan secara pukal adalah pantas. Membuangnya secara pukal tidak, dan jurangnya cukup luas untuk mengubah cara anda merancang sesuatu import.
| Operasi | Kaedah | Diperhatikan |
|---|---|---|
| Cipta 1,051 pengalihan | Import CSV, satu fail | 48 saat |
| Padam 1,051 pengalihan | urlRedirectDelete, satu demi satu |
226 saat |
Mutasi pemadaman pukal yang pantas itu berpagar. urlRedirectBulkDeleteBySearch, urlRedirectBulkDeleteByIds dan urlRedirectBulkDeleteAll semuanya memerlukan skop write_online_store_navigation dan sesi pengguna yang aktif. Aplikasi yang mengesahkan dengan kelayakan klien, iaitu cara kebanyakan skrip migrasi berjalan, tidak boleh memanggilnya dan terpaksa memadam satu rekod pada satu masa.
Rancang import anda seolah-olah ia sukar dipatah balik, kerana memang begitu. Sahkan fail itu pada kedai pembangunan dahulu, atau import dalam bahagian yang anda sanggup buka semula secara manual. Jangan tolak fail 50,000 baris yang belum anda uji dengan andaian anda boleh melancarkannya semula dengan pantas.
Import CSV dan Admin API Mengendalikan Pendua Secara Berbeza
Panduan ini ditulis berdasarkan aliran kerja CSV, di mana laluan pendua akan mengemas kini rekod sedia ada. API melakukan sebaliknya:
create /existing-path -> /pages/about
(where /existing-path already redirects to /)
REJECTED: "Path has already been taken"
Sesiapa yang memindahkan aliran kerja CSV ke Admin API perlu membuat pertanyaan bagi rekod sedia ada dan memanggil urlRedirectUpdate, atau memadam dan mencipta semula. Pemindahan logik import secara terus akan gagal pada setiap laluan yang sudah wujud.
Cara Menguji Pengalihan Shopify Anda Selepas Pelancaran
Segala di atas menerangkan apa yang akan diterima Shopify. Tiada satu pun daripadanya memberitahu anda sama ada pengalihan yang anda import benar-benar berfungsi pada kedai langsung, dan itu soalan yang berbeza. Pengalihan boleh diimport dengan bersih, muncul dalam admin, dan masih tidak melakukan apa yang anda jangkakan setelah tema, aplikasi, atau proksi berada dalam laluannya.
Uji dari luar kedai dan bukan dengan mengklik dalam pelayar, kerana pelayar menyembunyikan perkara yang anda perlu lihat: kod status. Minta URL lama itu dan baca pengepala responsnya.
curl -sIL https://yourstore.example/old-product-url
Baca tiga perkara dalam outputnya:
- Kod status pada lompatan pertama. Anda mahukan
301.302adalah sementara dan memindahkan nilai secara berbeza, yang menjadi soal penting apabila seluruh tujuannya ialah perpindahan kekal. - Bilangan lompatan. Setiap baris
HTTP/dalam output ialah satu lompatan. Dua atau lebih bermakna anda membina rantaian, dan penyelesaiannya ialah menghalakan semula sumber asal ke destinasi akhir dan bukan membiarkan langkah tengah itu kekal. - Status akhir. Baris terakhir sepatutnya
200. Pengalihan yang berakhir dengan404lebih buruk daripada tiada pengalihan langsung, kerana ia kelihatan sudah selesai dalam hamparan anda.
Kemudian uji bentuk yang mudah dilupakan. Jalankan semakan yang sama pada URL yang membawa parameter penjejakan untuk mengesahkan query string kekal sampai ke destinasi, pada domain apex serta www, dan melalui http biasa dan bukan hanya https. Kami menguji perkara ini pada kedai langsung dan parameter itu dibawa terus ke sasaran dengan utuh, tetapi tujuannya ialah untuk anda mengesahkannya pada kedai anda sendiri dan bukan mempercayai jawapan umum, kerana tema atau aplikasi boleh mengubah hasilnya.
Satu tingkah laku yang berbaloi diketahui sebelum anda panik: selepas anda menukar atau memadam pengalihan, nod edge Shopify boleh terus menyajikan respons lama selama kira-kira tiga puluh saat sementara versi URL yang sama dengan cache dipintas sudah mengembalikan yang baharu. Beri ia seminit dan uji semula dengan query string unik ditambah sebelum membuat kesimpulan bahawa pengalihan itu tidak berkuat kuasa.
Untuk urutan penuh sekitar sesuatu migrasi dan bukan satu pengalihan tunggal, ikuti senarai semak migrasi laman web, yang merangkumi pemetaan, hari pelancaran, dan pemantauan pasca pelancaran yang menjadi konteks bagi perkara ini.
Kesimpulan
Sistem yang ada pada Shopify untuk mengurus pengalihan 301 baik untuk kebanyakan perniagaan, tetapi belum lagi bertaraf Enterprise. Dengan masa kami berharap mereka berkembang untuk menyertakan pengalihan kad liar dan lebih banyak rekod pengalihan untuk pelan standard dan plus mereka. Keupayaan menggunakan sistem pengalihan mereka dan pelbagai jenis format URL yang disokongnya membuatkan kami menilai mereka dengan skor kebergunaan yang kukuh.
Jika anda menjalankan projek yang melibatkan pemetaan pengalihan 301 yang rumit dan memerlukan pasukan yang benar-benar arif dalam kerja jenis ini, hubungi kami.
Log Perubahan
Panduan ini mula diterbitkan daripada ujian pada 19 Jun 2024 dan diuji semula pada 27 Julai 2026 terhadap kedai Shopify pelan standard yang aktif, melalui Admin GraphQL API dan terhadap permintaan storefront langsung. Kebanyakan penemuan asal kekal. Sembilan tidak. Badan artikel di atas menyatakan apa yang Shopify lakukan sekarang, dan inilah yang berubah.
2024 Shopify menghalang anda daripada mencipta rantaian pengalihan.
2026 Perlindungan itu hanya menyemak satu arah. Ia menolak pengalihan yang destinasinya sudah menjadi sumber kepada pengalihan lain, tetapi tidak arah sebaliknya, jadi mencipta /a ke /b dan kemudian /b ke /c meninggalkan rantaian dua lompatan yang aktif. Susunan penciptaan sahaja yang menentukan sama ada satu rantaian terbentuk.
/services2024 /services berfungsi sebagai pengalihan, sama seperti /apps, /carts dan /orders.
2026 /services berfungsi secara bersendirian dan gagal dengan sebarang subdirektori. /services/consulting mengembalikan 404 walaupun rekod itu tersimpan. Setiap awalan lain dalam kumpulan itu berfungsi dengan subdirektori.
2024 Empat awalan terpelihara diabaikan apabila digunakan secara bersendirian: /cart, /products, /collections, /collections/all.
2026 Pemerhatiannya kekal, penjelasannya tidak. Laluan storefront yang benar-benar wujud sentiasa mengatasi pengalihan, yang merangkumi setiap produk, koleksi, halaman dan artikel blog yang aktif, bukan sekadar senarai empat laluan.
2024 Parameter tidak pernah ditambah pada URL yang dimuatkan.
2026 Benar hanya bagi laluan sumber berparameter. Di tempat laluan sumber tidak mempunyai parameternya sendiri, parameter pada permintaan dibawa terus ke destinasi.
2024 Shopify melayan URL berparameter sebagai string literal.
2026 Kedua-dua belah dinormalkan sebelum dibandingkan, jadi huruf besar kecil dan susunan tidak penting. Hanya set parameter yang ketat, dan menggugurkan satu akan mengembalikan 404.
2024 Parameter disusun mengikut abjad, dengan /test?name=John&Doe disimpan sebagai /test?Doe&name=John.
2026 Penyusunan mengikut abjad disahkan, dan huruf besar kecil tidak dikekalkan. Laluan yang sama disimpan sebagai /test?doe&name=john, dengan nilai ditukar kepada huruf kecil bersama kuncinya.
2024 Shopify tidak dapat menyerap string dengan koma bertitik tanpa pengekodan selepas operator sama dengan.
2026 Ia diserap tanpa masalah dan menyimpan koma bertitik itu sebagai %3b. Kegagalan berlaku pada waktu permintaan, dan meminta bentuk yang dikodkan mengembalikan 301.
2024 Import 1,000 baris pada satu masa.
2026 Bukan satu had. Satu fail 1,051 baris diimport tanpa sebarang kegagalan dalam 48 saat. Kelompok kekal amalan baik kerana fail yang lebih kecil gagal dengan lebih jelas.
2024 Shopify tidak menyokong pengalihan kad liar.
2026 Masih benar, dan ia menerima sintaks itu tanpa sebarang ralat. Tanda bintang disimpan sebagai aksara literal, jadi tiada apa-apa yang memberi isyarat kegagalan sehingga trafik mula mengembalikan 404.
2026 Mencipta 1,051 pengalihan mengambil masa 48 saat. Memadam 1,051 yang sama mengambil masa 226 saat, kerana mutasi pemadaman pukal memerlukan sesi pengguna yang aktif dan token berskrip tidak boleh memanggilnya.
2026 Import CSV mengemas kini laluan yang sudah wujud. Admin API menolaknya dengan Path has already been taken, jadi pemindahan logik import secara terus gagal pada setiap laluan sedia ada.
Setiap pengalihan mengembalikan 301. Had laluan 1,024 aksara termasuk garis miring di hadapan, dengan 1,027 ditolak dan 1,015 diterima. Huruf besar kecil dinormalkan dan huruf kecil mendapat keutamaan. Import pukal membuang protokol dan domain untuk meninggalkan laluan relatif, manakala medan destinasi mengekalkan URL luaran mutlak dengan utuh. Nod edge boleh menyajikan respons basi selama kira-kira tiga puluh saat selepas sesuatu perubahan.
Had rekod, iaitu 100,000 pada pelan standard dan 20,000,000 pada Plus, tidak dijalankan semula. Mencapainya secara mekanikal memang mungkin sekarang setelah saluran import diukur, tetapi pemadaman berjalan pada kira-kira 280 rekod seminit tanpa pembatalan pukal berskrip, jadi mengesahkan nombor yang didokumenkan akan meninggalkan kedai langsung membawa pengalihan sampah selama enam jam atau lebih.
Soalan Lazim
Siapakah yang dibantu oleh pangkalan pengetahuan Pengalihan URL Shopify WISLR?
Pangkalan pengetahuan kami terutamanya membantu jenama dan agensi yang menjalankan migrasi laman ke Shopify. Ia amat berguna untuk pasukan kecil yang perlu memanfaatkan setiap jam, membantu pelanggan memadankan dan melengkapkan sehingga 100,000 pengalihan URL dengan cekap.
Adakah Shopify mempunyai dokumen sokongan rasmi untuk pengalihan URL?
Ya, Shopify menyelenggara dokumen bantuan rasmi untuk pengalihan URL di help.shopify.com. Walaupun ia menyediakan garis panduan umum untuk menambah pengalihan 301 secara individu dan pukal, panduan kami melengkapkannya dengan spesifikasi terperinci tentang jenis URL dan batasan platform.
Apakah string URL yang tidak disokong oleh Shopify?
Shopify hanya mempunyai satu format string URL yang tidak disokong: string dengan aksara koma bertitik tanpa pengekodan selepas operator sama dengan (contohnya, /page?param=;semicolon). Semua format URL lain, termasuk koma bertitik yang dikodkan dan koma bertitik di kedudukan lain, disokong.
Adakah Shopify menyokong pengalihan menggunakan kad liar atau regex?
Tidak, Shopify pada masa ini tidak menyokong pengalihan kad liar atau corak regex dalam sistem pengalihan aslinya. Batasan ini wujud untuk kedai Shopify standard mahupun Shopify Plus.
Apakah pengalihan kad liar?
Pengalihan kad liar membolehkan anda mengalihkan berbilang URL yang sepadan dengan corak tertentu ke satu destinasi. Sebagai contoh, mengalihkan semua URL di bawah /blog/* ke /articles/*. Walaupun ciri ini kerap diminta, ia belum tersedia dalam fungsi asli Shopify.
Bolehkah Shopify mengelakkan pembentukan rantaian pengalihan?
Ya, Shopify mempunyai perlindungan terbina untuk mencegah rantaian pengalihan. Sistem ini tidak akan membenarkan anda mencipta pengalihan ke URL yang sudah dialihkan ke tempat lain.
Apakah rantaian pengalihan?
Rantaian pengalihan berlaku apabila URL dialihkan melalui beberapa langkah sebelum sampai ke destinasi akhir (contohnya, A→B→C). Rantaian ini boleh melambatkan pemuatan halaman dan menjejaskan prestasi SEO. Sistem Shopify membantu mencegahnya secara reka bentuk.
Adakah mudah untuk mencipta dan mengemas kini pengalihan URL pada Shopify?
Ya, Shopify menyediakan dua kaedah yang mudah: penciptaan pengalihan URL secara individu melalui antara mukanya dan import pukal melalui fail CSV. Kedua-dua kaedah menyokong laluan URL relatif dan mutlak.
Bagaimana anda mencipta pengalihan URL pukal dalam Shopify?
Pengalihan pukal boleh dicipta menggunakan alat import CSV Shopify. Kami mengesyorkan mengimport dalam kelompok 1,000 untuk semakan ralat dan pengurusan yang lebih mudah. Templat untuk import itu boleh didapati di sini.
Adakah Shopify mempunyai had maksimum untuk rekod pengalihan URL?
Ya. Pelan Shopify standard terhad kepada 100,000 pengalihan URL, manakala kedai Shopify Plus boleh mengendalikan sehingga 20,000,000 pengalihan. Had ini tetap dan tidak boleh dinaikkan.
Adakah Shopify mempunyai had kiraan aksara untuk pengalihan?
Ya, Shopify menguatkuasakan had 1,024 aksara untuk string pengalihan URL, termasuk awalan garis miring (’/’). URL yang melebihi panjang ini tidak akan diterima oleh sistem.
Adakah terdapat alat untuk mengesahkan URL bagi keserasian Shopify?
Walaupun Shopify tidak menyediakan alat pengesahan rasmi, ujian menyeluruh kami menunjukkan bahawa 99% format URL standard disokong. Pertimbangan utama ialah had 1,024 aksara dan mengelakkan koma bertitik tanpa pengekodan selepas operator sama dengan.