Tuesday, January 18, 2011

การ Rewrite URL สำหรับ Lighttpd

ก่อนอื่นต้องขอบอกก่อนสำหรับท่านที่ยังไม่ทราบนะครับ ว่า Lighttpd คือ web server เช่นเดียวกับ apache
เครื่อง Server ส่วนมากก็จะใช้ apache เป็นตัวรัน
และการ Rewrite ก็จะเรียกใช้ไฟล์ .htaccess
โค๊ดปกติในการ Rewrite ก็เป็นเช่นนี้ครับ


  1.         RewriteEngine On
  2.         RewriteBase /
  3.      #Rewrite
  4.         RewriteRule ^archiver/((fid|tid)-[\w\-]+\.html)$ archiver/index.php?$1
  5.         RewriteRule ^forum-([0-9]+)-([0-9]+)\.html$ forumdisplay.php?fid=$1&page=$2
  6.         RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ viewthread.php?tid=$1&extra=page\%3D$3&page=$2
  7.         RewriteRule ^space-(username|uid)-(.+)\.html$ space.php?$1=$2
  8.         RewriteRule ^tag-(.+)\.html$ tag.php?name=$1
คัดลอกไปที่คลิปบอร์ด
แต่สำหรับเครื่อง Server ที่ท่านใช้เป็น Lighttpd จะไม่สามารถใช้ไฟล์ .htaccess ได้
รูปแบบโค๊ดสำหรับ Lighttpd เขียนใหม่ได้ดังนี้ครับ
  1. url.rewrite-once = (
  2.         "^/archiver/((fid|tid)-[\w\-]+\.html)$" => "archiver/index.php?$1",
  3.         "^/forum-([0-9]+)-([0-9]+)\.html$" => "forumdisplay.php?fid=$1&page=$2",
  4.         "^/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$" => "viewthread.php?tid=$1&extra=page%3D$3&page=$2",
  5.         "^/space-(username|uid)-(.+)\.html$" => "space.php?$1=$2",
  6.         "^/tag-(.+)\.html$" => "tag.php?name=$1"
  7. )
คัดลอกไปที่คลิปบอร์ด
แต่ว่าไฟล์ไหนที่ต้องไปแก้ อันนี้ไม่แน่ใจครับ -  -*
ผิดพลาดประการใด ท่านผู้รู้ชี้แนะด้วยครับ ^^


แก้ที่ lighttpd.conf ถ้าเป็น visual host ก็น่าจะเป็น lighttpd.domain.com.conf


-----------------------------------------------------------------------------------

ท่านเซียนๆทั้งหลายช่วยผมทีครับ  แปลง Rewrite Rule นี้ให้เป็นของ Lighty ที

RewriteEngine On

        RewriteBase /

        RewriteRule ^archiver/([a-z0-9-]+.html)$ archiver/index.php?$1
        RewriteRule ^forum-([0-9]+)-([0-9]+).html$ forumdisplay.php?fid=$1&page=$2
        RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+).html$ viewthread.php?tid=$1&extra=page%3D$3&page=$2
        RewriteRule ^profile-(username|uid)-(.+).html$ viewpro.php?$1=$2
        RewriteRule ^space-(username|uid)-(.+).html$ space.php?$1=$2
========================================================เอาค่าของ rewritebase มาใส่หลังเครื่องหมาย ^ ใน rewriterule ตัวแรก
แล้วจับใส่เป็น array ครับ

ex:


        RewriteBase /

        RewriteRule ^archiver/([a-z0-9\-]+\.html)$ archiver/index.php?$1

ได้เป็น

url.rewrite += ( "^/archiver/([a-z0-9\-]+\.html)$" => "archiver/index.php?$1" )

จบครับ
      
      

0 comments:

Post a Comment

 
Design by GURU