ลองสิ่งนี้:
DirectoryIndex index.php
ตัวเลือก -MultiViews
RewriteEngine เปิดอยู่
RewriteRule ^admin(?:$|/([^.]*))$ admin.php?uri=$1 [QSA,L]
RewriteRule ^([^.]+)$ index.php?uri=$1 [QSA,L]
ซึ่งจะถือว่าไม่มี URL ใดของคุณ (ที่ต้องเขียนใหม่) มีจุด (.
). ซึ่งจะช่วยหลีกเลี่ยงความจำเป็นในการตรวจสอบระบบไฟล์เพื่อให้แน่ใจว่าคำขอไม่ได้แมปกับทรัพยากรแบบสแตติก ซึ่งโดยปกติจะมีนามสกุลไฟล์ (คั่นด้วยจุด)
หลายมุมมอง
ต้องปิดการใช้งาน (หากยังไม่ได้ดำเนินการ) เนื่องจากคุณกำลังขอ URL /แอดมิน
นั่นคือชื่อฐานของไฟล์ที่คุณกำลังเขียนใหม่ หากเปิดใช้งาน MultiViews แล้ว /admin.php
จะถูกเรียกโดยไม่มีพารามิเตอร์ URL
เดอะ คำพูดคำจา
แฟล็ก (ต่อท้ายสตริงข้อความค้นหา) จำเป็นต่อเมื่อคุณคาดว่าจะมีสตริงข้อความค้นหาในคำขอเดิม ซึ่งจะต้องต่อท้าย URL ที่เขียนใหม่
คำขอสำหรับรูทเอกสาร (โฮมเพจ) จะเรียก index.php
ปราศจาก เดอะ ยูริ
พารามิเตอร์.
นอกเหนือ: เพียงทราบเกี่ยวกับคำศัพท์ ...
หาก URL ใช้พารามิเตอร์อื่นใด (นอกเหนือจาก /แอดมิน
)
สิ่งที่คุณเรียกว่า "พารามิเตอร์" ในที่นี้คือเส้นทาง URL (หรือส่วนเส้นทาง) จริงๆ URL พารามิเตอร์ เป็นคู่ของ name=value ในสตริงการสืบค้น (สิ่งที่คุณต้องการเขียนคำขอใหม่)
ในตัวอย่างของคุณ คุณกำลังเขียนเส้นทาง URL ใหม่เป็นค่าพารามิเตอร์ URL