รายละเอียดของการตอบ ::
RewriteEngine On
RewriteBase /
#REWRITE CONDITON
RewriteCond %{REQUEST_FILENAME} !-f # ถ้าไม่ใช่ file
RewriteCond %{REQUEST_FILENAME} !-d # ถ้าไม่ใช่ directory
RewriteRule ^articles/(.*).html$ article.php?articlename=$1
RewriteRule ^places/(.*).html places.php?placename=$1
RewriteRule ^hotels/(.*).html hotel.php?hotelname=$1
RewriteRule ^banner/(.*).html banner.php?bannername=$1
RewriteRule ^(.*).html categorys.php?categoryname=$1
RewriteCond %{HTTP_HOST} !^www.abc.com$ [NC]
RewriteRule ^(.*)$ http://www.abc.com/$1 [L,R=301]
ไม่ทราบว่าแก้ปัญหาได้หรือยัง จากที่เห็น ลองเปลี่ยนตามนี้ดูครับ
RewriteEngine On
RewriteBase /
#REWRITE CONDITON
RewriteCond %{REQUEST_FILENAME} !-f # ถ้าไม่ใช่ file
RewriteCond %{REQUEST_FILENAME} !-d # ถ้าไม่ใช่ directory
RewriteRule ^(.*)/(.*).html$ $1.php?articlename=$2
RewriteRule ^(.*)/(.*).html $1.php?placename=$2
RewriteRule ^(.*)/(.*).html $1.php?hotelname=$2
RewriteRule ^(.*)/(.*).html $1.php?bannername=$2
RewriteRule ^(.*).html categorys.php?categoryname=$1
RewriteCond %{HTTP_HOST} !^www.abc.com$ [NC]
แต่ถ้าอยากลดการทำงานลงไปอีกลองเปลี่ยน query sting ใหม่ก็ได้ ประมาณว่า
RewriteEngine On
RewriteBase /
#REWRITE CONDITON
RewriteCond %{REQUEST_FILENAME} !-f # ถ้าไม่ใช่ file
RewriteCond %{REQUEST_FILENAME} !-d # ถ้าไม่ใช่ directory
RewriteRule ^(.*)/(.*).html$ $1.php?id=$2
RewriteRule ^(.*).html categorys.php?categoryname=$1
RewriteCond %{HTTP_HOST} !^www.abc.com$ [NC]
คือถ้าเจอ (path-1)/(file-2).html จะไปเรียก (path-1).php?id=(file-2) แทน