Score:0

RewriteRule ตามภาษา เช่น mysite.com/en/ ใน .htaccess

ธง us

ฉันกำลังพยายามเขียนคำสั่งเปลี่ยนเส้นทางใน .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 รายการ แต่ไม่พบสิ่งที่ฉันกำลังมองหา

vidarlo avatar
ar flag
ดังนั้น example.com/de/ จึงใช้งานได้ แต่ไม่ใช่ example.com/de? เพียงเพื่อให้ชัดเจน
denoise avatar
us flag
@vidarlo แน่นอน
kz flag
เพื่อชี้แจงว่าภาษา "โฟลเดอร์" ไม่ใช่ฟิสิคัลไดเร็กทอรี? "ทุกคำขอในโฟลเดอร์ภาษา" - นี่คือทุกคำขอ (ตามคำสั่งของคุณ) หรือเป็นเพียงไฟล์ `.php` ที่มีอยู่ในเส้นทาง URL ต่อไปนี้ แล้วทรัพยากรแบบคงที่ (CSS, JS, รูปภาพ ฯลฯ ) ล่ะ เหล่านี้เป็นภาษา "โฟลเดอร์" ด้วยหรือไม่ หรือควรยกเว้น? "เปลี่ยนเส้นทางคำขอใด ๆ โดยไม่มีเส้นทางภาษา" - แท้จริงแล้วคือ "คำขอใด ๆ "? ไม่มีข้อยกเว้น? แล้วทรัพยากรคงที่ล่ะ?
kz flag
"เพิ่มเครื่องหมายทับต่อท้าย" - ต่อท้าย "โฟลเดอร์ภาษา" (ตามตัวอย่างของคุณ) หรือควรจะกว้างกว่านี้ (แม้ว่าจากตัวอย่างอื่นๆ ของคุณ ฉันไม่คิดว่าจะกว้างกว่านี้) ควรเขียนคำขอสำหรับ `/en/` เป็น `index.php` หรือไม่ ในตัวอย่างของคุณ คุณกำลังเขียนสิ่งนี้ใหม่เป็น `?lang=XX` (ซึ่งไม่ใช่จุดสิ้นสุดที่ถูกต้อง) สิ่งนี้ต้องการให้ mod_dir ออกคำขอย่อยสำหรับ `DirectoryIndex` (ซึ่งไม่ได้ตั้งค่าไว้อย่างชัดเจนที่นี่ ดังนั้นจึงไม่รับประกัน เพื่อทำงานกับรหัสตามที่โพสต์)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา