Klien ingin toko multistorenya diatur seperti ini:
- http://www.domain1.org/de/ -> situs web 1, tampilan toko 1
- http://www.domain1.org/en/ -> situs web 1, tampilan toko 2
- http://www.domain1.ch/de/ -> situs web 2, tampilan toko 3
- http://www.domain1.ch/fr/ -> situs web 2, tampilan toko 4
- http://www.domain1.ch/it/ -> situs web 2, tampilan toko 5
- ...
Ini adalah contoh tetapi mungkin ada banyak subfolder yang berbeda. Apa pendekatan terbaik untuk menangani subfolder yang berbeda untuk tampilan toko / situs web yang berbeda?
Saya tahu bahwa salah satu solusinya adalah membuat subfolder yang disebut de
, en
dll. Dan menyalin index.php dan .htaccess ke dalam subfolder yang sesuai.
Mungkin juga ada beberapa solusi (symlinks untuk index.php, konfigurasi vHost daripada menggunakan .htaccess) untuk meminimalkan duplikasi file tetapi saya ingin menemukan solusi di mana saya tidak perlu melakukan perubahan apa pun dalam sistem file tetapi hanya menangani semuanya dengan konfigurasi.
MEMPERBARUI
Kami memverifikasi dengan dukungan Perusahaan bahwa cara terbaik untuk melakukan ini adalah dengan membuat subfolder.
Kami akhirnya melakukannya seperti ini:
- Buat direktori "folder bahasa"
- Membuat salinan index.php di dalam direktori bersama dengan .htaccess dan symlink yang disesuaikan ke folder Magento (app /, errors /, ...)
- Membuat symlink "de", "en" dll. Di dalam direktori root Magento yang menunjuk ke direktori "languagefolders"
Dengan cara ini kita dapat menambahkan bahasa baru dengan membuat symlink baru (mis. "Fr").
sumber
Jawaban:
Sangat mudah untuk melayani banyak domain / jalur berdasarkan URL. Seperti disebutkan, pengaturan termudah (hanya konfigurasi) dimungkinkan ketika
core/store
kode unik dapat digunakan di jalur sebagai subfolder . Ini membutuhkan salah satu dari yang berikut:Mengenai # 3: sejak 1.4 Magento, memungkinkan server Web untuk menentukan konteks yang berjalan ( situs web atau toko ) serta kode tertentu yang harus digunakan. Dari index.php :
Sedangkan variabel lingkungan digunakan untuk menginisialisasi aplikasi, dimungkinkan untuk mempengaruhi sistem bahkan sebelum PHP berputar. Dengan Apache dan
mod_rewrite
ini bisa dilakukan untuk subfolder dengan sedikit tipu daya:Apache gugup dengan variabel lingkungan dan subfolder, seperti yang ditunjukkan oleh jawaban SO yang luar biasa ini . Dua baris awal menghasilkan
$_SERVER["REDIRECT_MAGE_RUN_CODE"] = 'deutsch';
sedangkan dua baris terakhir menyediakan yang dibutuhkan$_SERVER["MAGE_RUN_CODE"] = 'deutsch';
. Ada banyak trik lain, tetapi hal di atas telah menggigit saya sebelumnya.Sasaran akhir haruslah deteksi awal sebanyak yang wajar (geoip + multi-bahasa) sambil membuat pengguna mengatur cookie toko yang dapat digunakan untuk mem-bypass / melangkah melalui logika dalam permintaan berikutnya.
sumber
mode_rewrite
) BerdasarkanHTTP_HOST
+ subfolder level 1.Jika URL lekukan (subfolder) dapat memiliki nama yang sama seperti kode toko (mengapa tidak?), Anda dapat dengan mudah mengaktifkannya
Configuration > Web > Url options > Add Store Code to Urls
.sumber
Add store codes to url
sebagai pengaturan tampilan toko? magento.stackexchange.com/questions/60686/… = misalkan ada 1 multistore dengan sep domain, yang lain menggunakan / en dan / frkami akhirnya melakukan hal itu
Kami memverifikasi dengan dukungan Perusahaan bahwa cara terbaik untuk melakukan ini adalah dengan membuat subfolder.
Di backend kita atur toko
base url
kedomain.com/en
Jika Anda menggunakan nginx, pembaruan diperlukan untuk pemrosesan lokasi Anda untuk memproses index.php juga di sub folder baru. Ini perlu dilakukan untuk setiap folder terjemahan baru
sumber
location @rewrite { rewrite /(../)? /$1index.php; }
Ada entri di basis pengetahuan resmi Magento yang menjelaskan hal itu.
Jika Anda bekerja dengan Apache, pastikan semua entri Virtual Host (untuk setiap domain) mengarah ke root dokumen yang sama di mana instalasi Magento Anda berada. Itu untuk banyak domain.
Hal berikutnya (dan yang terakhir) adalah .htaccess di folder instalasi Magento yang sama. .htaccess adalah file konfigurasi tingkat direktori yang kuat di mana Anda dapat menetapkan aturan-tindakan per setiap permintaan server. Jadi, Anda perlu menangani semua tindakan (sub) domain / folder yang berbeda di sana dan mengatur variabel server yang benar yang digunakan Magento pada tahap inisialisasi.
Setelah selesai dengan konfigurasi server, Anda harus menetapkan jalur dasar yang berbeda untuk setiap toko di admin Magento (sistem - konfigurasi - umum - web).
Jadi pastikan Anda mengikuti panduan resmi (yang juga merupakan cara yang disukai) dan semuanya akan berjalan lancar.
sumber
Pertama, Anda harus melakukan beberapa konfigurasi di panel admin Magento, lalu buat subdirektori, dan pindahkan index.php dan .htaccess ke subdirektori, dan buat beberapa perubahan kecil pada index.php.
Ini adalah contoh lengkap bagaimana melakukan ini.
sumber