ช่วยบอกวิธี เขียนโค้ด mod rewrite หน่อยครับ
คือว่าผมอยากเขียนโค้ด mod rewrite ได้ดูตัวอย่างแล้ว และทำแล้ว ไม่เห็นมันเกิดรายขึ้นเลยครับ
ไฟล์แรก .htaccess แบบนี้ครับ
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+) - [PT,L]
RewriteRule ^(.*) main.php
ErrorDocument 404 /pagenotfound.html
ส่วนไฟล์ที่สอง main.php แบบนี้ครับ
<?php
define("ES-REPAIR", 1);
error_reporting(E_ALL);
// ประกาศตัวแปร
$context = array();
// เรียกฟังก์ชั่น แสดงหน้า
call_user_func(query_file());
themeplate_bellow();
function query_file()
{
global $context;
// Relative path
$context['dir'] = str_replace('\\', '/', dirname(__FILE__));
// Absolute path
$context['path'] = "http://".$_SERVER['SERVER_NAME'].str_replace($_SERVER['DOCUMENT_ROOT'], '', $context['dir']);
// uri แบบที่ตัด root folder ออก
$context['uri'] = str_replace($context['dir'].'/', '', $_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI']);
// explode เพื่อตัดข้อมูลหลังจาก ? ออกไป
list($context['xuri']) = explode('?', $context['uri'], 2);
// explode เพื่อสร้าง array โดยการ แยก ที่ตำแหน่ง /
$context['uri'] = explode("/", $context['xuri']);
$QueryString = $context['uri'][0];
if(eregi('--', $QueryString)) {
$trueQuery = explode('--', $QueryString);
$QueryString = $trueQuery[0];
$context['uri']['sub'] = $trueQuery[1];
}
$actionArray = array(
'home' => array('index.php', 'Home', 'หน้าแรก'),
'showweb' => array('showweb/main_cat.php', 'Showweb', 'สารบัญเว็บไซต์'),
'addindex' => array('addindex/index.php', 'Addindex', 'เพิ่มเว็บไซต์'),
'contactus' => array('contact/index.php', 'Contact', 'ติดต่อเรา'),
'search' => array('search/index.php', 'Search', 'ค้นหาเว็บไซต์'),
'newweb' => array('newweb/index.php', 'Newweb', 'เว็บไซต์มาใหม่'),
'hotweb' => array('hotweb/index.php', 'Hotweb', 'เว็บไซต์ยอดนิยม'),
'top10' => array('top10/index.php', 'Top10', 'เว็บไซต์์สิบอันดับ'),
'admin' => array('admin/thaiindexz.php', 'Admin', 'หน้าผู้ดูแลระบบ')
);
//themeplate_header();
//navigator();
if(!isset($actionArray[$QueryString])) {
$context['title'] = 'หน้าแรก';
themeplate_header();
require_once(DIRSOURCE.'index.php');
return 'Home';
} else {
$context['title'] = $actionArray[$QueryString][2];
themeplate_header();
require_once(DIRSOURCE.$actionArray[$QueryString][0]);
return $actionArray[$QueryString][1];
}
}
?>
ผมไม่รู้จะทำไงแล้วครับ งงมาหลายวันแล้วครับ ช่วยที่นะครับ ขอบคุณล่วงหน้าครับ
เว็บนี้ครับ http://www.webthaiindex.com
ไฟล์แรก .htaccess แบบนี้ครับ
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+) - [PT,L]
RewriteRule ^(.*) main.php
ErrorDocument 404 /pagenotfound.html
ส่วนไฟล์ที่สอง main.php แบบนี้ครับ
<?php
define("ES-REPAIR", 1);
error_reporting(E_ALL);
// ประกาศตัวแปร
$context = array();
// เรียกฟังก์ชั่น แสดงหน้า
call_user_func(query_file());
themeplate_bellow();
function query_file()
{
global $context;
// Relative path
$context['dir'] = str_replace('\\', '/', dirname(__FILE__));
// Absolute path
$context['path'] = "http://".$_SERVER['SERVER_NAME'].str_replace($_SERVER['DOCUMENT_ROOT'], '', $context['dir']);
// uri แบบที่ตัด root folder ออก
$context['uri'] = str_replace($context['dir'].'/', '', $_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI']);
// explode เพื่อตัดข้อมูลหลังจาก ? ออกไป
list($context['xuri']) = explode('?', $context['uri'], 2);
// explode เพื่อสร้าง array โดยการ แยก ที่ตำแหน่ง /
$context['uri'] = explode("/", $context['xuri']);
$QueryString = $context['uri'][0];
if(eregi('--', $QueryString)) {
$trueQuery = explode('--', $QueryString);
$QueryString = $trueQuery[0];
$context['uri']['sub'] = $trueQuery[1];
}
$actionArray = array(
'home' => array('index.php', 'Home', 'หน้าแรก'),
'showweb' => array('showweb/main_cat.php', 'Showweb', 'สารบัญเว็บไซต์'),
'addindex' => array('addindex/index.php', 'Addindex', 'เพิ่มเว็บไซต์'),
'contactus' => array('contact/index.php', 'Contact', 'ติดต่อเรา'),
'search' => array('search/index.php', 'Search', 'ค้นหาเว็บไซต์'),
'newweb' => array('newweb/index.php', 'Newweb', 'เว็บไซต์มาใหม่'),
'hotweb' => array('hotweb/index.php', 'Hotweb', 'เว็บไซต์ยอดนิยม'),
'top10' => array('top10/index.php', 'Top10', 'เว็บไซต์์สิบอันดับ'),
'admin' => array('admin/thaiindexz.php', 'Admin', 'หน้าผู้ดูแลระบบ')
);
//themeplate_header();
//navigator();
if(!isset($actionArray[$QueryString])) {
$context['title'] = 'หน้าแรก';
themeplate_header();
require_once(DIRSOURCE.'index.php');
return 'Home';
} else {
$context['title'] = $actionArray[$QueryString][2];
themeplate_header();
require_once(DIRSOURCE.$actionArray[$QueryString][0]);
return $actionArray[$QueryString][1];
}
}
?>
ผมไม่รู้จะทำไงแล้วครับ งงมาหลายวันแล้วครับ ช่วยที่นะครับ ขอบคุณล่วงหน้าครับ
เว็บนี้ครับ http://www.webthaiindex.com