Saya baru saja menerjemahkan situs web saya. Untuk alasan SEO (untuk menghindari duplikat konten) saya ingin SETIAP URL memiliki bahasa di dalamnya. Misalnya, www.racebooking.net/page.php
harus menjadi www.racebooking.net/en/page.php
. Bagian /en/
kemudian diubah menjadi ?lang=en
.
Selain itu, pengguna harus memiliki kemungkinan untuk memilih bahasa pilihan saat menjelajahi situs web.
Logika yang saya coba terapkan adalah sebagai berikut:
- JIKA URL-nya
racebooking.net/en/page.html
, cukup bukapage.html?lang=en
apa pun bahasa browser saya - JIKA URL-nya
racebooking.net/it/page.html
, cukup bukapage.html?lang=it
apa pun bahasa browser saya - JIKA URL-nya
racebooking.net/page.html
, periksa bahasa browser. Jika bahasa Italia, ubah url menjadiracebooking.net/it/page.html
dan bukapage.html?lang=it
, jika tidak, ubah url menjadiracebooking.net/en/page.html
dan bukapage.html?lang=en
Saya menulis htaccess ini
RewriteCond %{THE_REQUEST} !^[A-Z]{3,}\s/[en|it]{1,1}/(.*)$ [NC]
RewriteCond %{HTTP:Accept-Language} ^it [NC]
RewriteRule ^$ /it/%1 [L,QSA,NC]
RewriteCond %{THE_REQUEST} !^[A-Z]{3,}\s/[en|it]{1,1}/(.*)$ [NC]
RewriteRule ^$ /en/%1 [L,QSA,NC]
Tapi tidak terjadi apa-apa...tidak terdeteksi bahwa /en/
atau /it/
hilang! Sepertinya RewriteCond pertama tidak terjadi...
Apalagi sepertinya akan bertentangan dengan aturan ini
RewriteRule ^(en|it)\/(.*)$ $2\?lang=$1 [L,QSA,NC]
ada ide?
EDIT Setelah diskusi panjang, @anubhava memecahkan masalahnya! Solusinya bekerja dengan sempurna. Jadi, saya mengedit pertanyaan saya agar lebih bermanfaat bagi pengunjung.