ฉันกำลังพยายามเขียนคำสั่งเปลี่ยนเส้นทางใน .htaccess เพื่อส่งต่อคำขอของผู้ใช้ทั้งหมดเป็นการภายในดังนี้:
- ทุกคำขอในโฟลเดอร์ภาษาควรเปลี่ยนเส้นทางไปยังไฟล์ที่ร้องขอด้วยสตริงการสืบค้นภาษา:
example.com/en/contact.php -> example.com/contact.php?lang=th
- เปลี่ยนเส้นทางคำขอใด ๆ ที่ไม่มีเส้นทางภาษาไปยังโฟลเดอร์ภาษาเริ่มต้นดังนี้:
example.com -> example.com/th
- ลบเครื่องหมายทับท้ายหากมีการป้อนที่อยู่:
example.com/en/ ถึง example.com/en
- สำหรับโปรเจ็กต์โฟลเดอร์ ทุกคำขอควรนำไปสู่ไฟล์ view-project.php ด้วยสตริงการสืบค้นที่เกี่ยวข้อง:
example.com/en/projects/test -> example.com/view-project.php?lang=th&path=test
นี่คือความพยายามของฉัน แต่มันใช้งานไม่ได้หากไม่มีเครื่องหมายทับท้ายตามคำขอเช่น: http://www.example.com/de และไม่เปลี่ยนเส้นทาง http://www.example.com ไปยังโฟลเดอร์ภาษาเริ่มต้น
RewriteEngine เปิดอยู่
RewriteRule ^(en|de)/(.*)$ $2?lang=$1 [L,QSA,NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^projects/([^/\.]+)/?$ view-project.php?path=$1 [QSA,L]
ฉันจะบรรลุสิ่งนี้ได้อย่างไร
นี่อาจเป็นการทำซ้ำและฉันต้องขออภัยมา ณ ที่นี้ ฉันค้นหาทุกที่และอ่านบทความประมาณ 100 รายการ แต่ไม่พบสิ่งที่ฉันกำลังมองหา