.htacces เขียนใหม่ด้วยค่าคุกกี้

ฉันมีเว็บไซต์ 2 ภาษา ฉันกำลังแทรกข้อความสำหรับแต่ละภาษาผ่านค่าคงที่ php และฉันกำหนดภาษาของผู้ใช้ผ่านคุกกี้ (lang=es หรือ lang=en)
ตอนนี้ URL พื้นฐานในแต่ละภาษาคือ www.webname.com/ แต่ฉันต้องการเขียนใหม่โดยขึ้นอยู่กับภาษา หากตั้งค่าคุกกี้เป็น es URL จะต้องเป็น www.webname.com/es/ และหากอยู่ใน en จะต้องเป็น www.webname.com/en/
ฉันกำลังดูคู่มือและบทช่วยสอนบางรายการอยู่ แต่ฉันไม่ค่อยพอใจกับนิพจน์ทั่วไป

แก้ไข: ฉันกำลังทำอะไรแบบนั้นในไฟล์ .htaccess ของฉัน:

RewriteEngine On
RewriteCond %{HTTP_COOKIE} lang=en;? [NC]

หากฉันใส่การเปลี่ยนเส้นทางเช่น:
RewriteRule ^ http://www.google.com [NC,L]
หลังจากนั้น มันก็ใช้งานได้ แต่ฉันไม่รู้ว่าจะทำอย่างไรเช่นเดียวกันกับการเขียนใหม่


person Hartorell    schedule 17.06.2015    source แหล่งที่มา


คำตอบ (1)


ลองสิ่งนี้:

 RewriteEngine On 
 #Redirecting with the cookie value
 RewriteCond %{HTTP_COOKIE} ^lang=(en|es)$ [NC] 
 RewriteRule ^(.*)$ http://example.com/%1/$1 [R,L] 

หากตั้งค่าคุกกี้เป็น "en" คำขอทั้งหมดจะเปลี่ยนเส้นทางไปที่ example.com/en/

person Amit Verma    schedule 17.06.2015
comment
ฉันกำลังทำงานกับรหัสของคุณ ฉันเข้าใจและคิดว่ามันต้องได้ผล แต่มันก็ไม่ได้ผล เพียงแต่มันไม่ได้เขียนอะไรใหม่ใน URL ฉันได้ลบรหัสประเภทอื่น ๆ ในไฟล์ htaccess แล้วเผื่อไว้ แต่ก็ยังใช้งานไม่ได้ - person Hartorell; 17.06.2015
comment
ตกลง. ฉันลบ ^ ของ ^lang=(en|es)$ แล้ว และใช้งานได้แล้ว ขอบคุณ - person Hartorell; 17.06.2015
comment
ระวังด้วยแฟล็ก [NC] ซึ่งทำให้ RewriteRule ตรงกันในลักษณะที่ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ กล่าวคือ ไม่สนใจว่าตัวอักษรจะปรากฏเป็นตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็กใน URI ที่ตรงกัน - person A-312; 05.02.2019