Saya mempunyai tapak web dalam bahasa Inggeris dan Sepanyol, setiap bahasa mempunyai folder sendiri, contohnya:
news.com/en/ for English news.com/es/ for Spanish
Senarai berita terkini dipaparkan di:
news.com/en/latest-news.php for English news.com/es/ultimas-noticias.php for Spanish
Apabila pengguna mengklik pada artikel untuk membaca keseluruhan artikel, mereka dipautkan untuk membaca keseluruhan artikel dari sini (menggunakan slug yang disimpan dalam MySQL) seperti ini (sebagai contoh):
news.com/en/general/news/europe/2022/10/22/this-is-a-nice-title
Semua artikel menggunakan halaman berikut untuk slug:
news.com/en/read-article.php for English news.com/es/leer-noticia.php for Spanish
Pada halaman ini, skrip menanyakan MySQL untuk mencari slug dan memaparkan artikel penuh. Masalahnya ialah atas sebab tertentu saya tidak faham saya tidak mendapat apa-apa keputusan.
Jika saya mengalihkan fail ke direktori akar:
news.com/read-article.php for English news.com/leer-noticia.php for Spanish
Kemudian ia berfungsi dengan baik, tetapi menambah fail ini ke dalam subfolder saya tidak mendapat sebarang hasil.
Yang penting, slug disimpan dalam MySQL seperti ini:
general/news/europe/2022/10/22/this-is-a-nice-title
Oleh kerana ia kelihatan lebih baik daripada sempang dan tarikh adalah tarikh ia diterbitkan, ia akan berubah dengan setiap siaran.
Ini ialah kod .htaccess yang saya buat untuk subfolder ini:
Kemas kini: Masalahnya hanya dalam htaccess dan walaupun saya menjawab soalan saya sendiri, ia masih belum selesai sepenuhnya
RewriteEngine On RewriteRule ^(en)/([a-zA-Z0-9-]+)$ /read-article.php?id= [L] RewriteRule ^(es)/([a-zA-Z0-9-]+)$ /leer-noticia.php?id= [L]
Awak tahu apa masalahnya?
Bagi yang mencari bantuan kerana mengalami masalah yang sama dan saya pasti ada ramai:
Saya dapat memperbaikinya dengan cara yang bertuah, tetapi sudah tentu bukan cara profesional, mungkin cara yang salah, tetapi ia berkesan. Terdapat banyak soalan serupa di laman web ini tanpa jawapan, jadi nampaknya rata-rata orang tidak tahu banyak tentang htaccess.
Penyelesaian yang saya temui ialah:
Jadi anda boleh mempunyai tapak web dalam pelbagai bahasa dan setiap bahasa berada dalam subfolder tetapi walaupun anda menjalankan satu laman web bahasa dan menggunakan subfolder maka anda pasti memerlukan bantuan ini hanya menjalankan .htaccess ini, ia akan berfungsi (edit dengan nama fail anda jelas)
Sekarang kita pastinya perlu membaca lebih lanjut tentang [L] dalam kod, terdapat banyak lagi seperti itu:
Saya tidak faham arahan berikut, jika anda memerlukannya, tetapi anda pasti boleh menemuinya jika anda meminta bantuan, atau mungkin sesetengah orang di sini boleh berkongsi pengetahuan dengan kami:
Tiada orang lain yang menjawab soalan ini, ia sama seperti kebanyakan soalan tentang .htaccess dan URL mesra, tetapi terdapat sekurang-kurangnya beberapa perkara yang tidak profesional di sini, tetapi bagaimanapun saya berkongsi sedikit pengetahuan noob kerana itu idea utama dalam komuniti ini, bukan semua orang profesional, tetapi kita semua boleh berkongsi ilmu. Jika ada jawapan yang lebih baik, saya pasti akan menandainya sebagai betul