Bagaimana cara mengalihkan /? Lang = en ke / en?

Jun 25 2019

Saya mengalami masalah saat mengarahkan satu halaman situs multibahasa. Pengalihan saya ke htaccess tidak beroperasi dengan benar. Saya butuh bantuan bagaimana ini bisa dilakukan. Di htaccess saya, saat saya menambahkan dua baris ini

RewriteCond %{QUERY_STRING} ^lang=en$
RewriteRule ^ /en? [R=301,L]

redirect bekerja, tapi mysite.com/en show 404 not found. Seseorang membantu saya dengan ini?

Jawaban

anubhava Jun 28 2019 at 11:50

Aturan pengalihan Anda seperti yang ditunjukkan dalam pertanyaan berfungsi dengan baik. Bot Anda juga memerlukan aturan penulisan ulang untuk menangani /en:

RewriteEngine On

RewriteCond %{ENV:REDIRECT_STATUS} ^$ RewriteCond %{QUERY_STRING} ^lang=([a-z]{2})$
RewriteRule ^ /%1? [R=301,L]

RewriteRule ^([a-z]{2})/?$ ?lang=$1 [QSA,L]
Jojoma Jun 26 2019 at 10:18

Jika browser Anda berakhir di mysite.com/en, pengalihan Anda berfungsi, jadi pertanyaan Anda bukanlah bagaimana cara mengalihkan, tetapi mengapa tidak ada konten di / en di situs Anda. Anda perlu menyelidikinya.