ช่วยดู ให้หน่อยครับ mod_rewrite error เพราะอะไรครับ
อยากรู้ด้วยครับว่าจะเอา หน้านั้น มาแสดงใน ไฟล์นี้ยังไงครับ
ผมสงสัยตั้งแต่ กระทู้นี้ แล้วครับ ช่วยชี้แนะด้วย
Date :
2009-06-10 22:30:46
By :
nut_t02
Code .htaccess(PHP)
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+) - [PT,L]
RewriteRule ^(.*) index1.php
Code common.inc.php จับมาแยก
$conf['dir'] = str_replace('\\', '/', dirname(__FILE__));
$conf['path'] = "http://".$_SERVER['SERVER_NAME'].str_replace($_SERVER['DOCUMENT_ROOT'], '', $conf['dir']);
$conf['uri'] = str_replace($conf['dir'].'/','', $_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI']);
list($xuri) = explode('?', $conf['uri'], 2);
$uri = explode("/", $xuri);
Code index1.php
<?php
require('common.inc.php');
$loadmodule = ($uri[0]) ? $uri[0] : 'index.php';
$inc = '/'.$loadmodule;
if (is_dir($inc)) {
include($inc.'/compile.php');
}
include( $conf['path'].'/'.'category.php?classified='.$uri[0]);
?>
จาก url www.abcxxx.com/sssss/
ไม่มีอยู่จริง .htaccess สั่งให้วิ่งมาที่ index1.php
เมื่อวิ่งไป index1.php แล้ว เรียกไฟล์ common.inc.php มาทำงานด้วย เพื่อแยก 'path'
ถ้าได้ถามเงื่อนไข บรรทัดนี้จะทำงานต่อไป
โดยที่ยังคงเป็น url www.abcxxx.com/sssss/ นี้อยู่
include( $conf['path'].'/'.'category.php?classified='.$uri[0]);
แต่ใน localhost ได้ครับ แต่ของ อัพขึ้น host ก็เป็นอย่างที่หัวข้อครับ
ปล.ผมมั่วเอาพอ เกิด error แล้ว เลยแก้ไม่ถูก
รบกวนผู้รู้ช่วยหน่อยครับ อยากทำเรื่อง mod_rewrite ให้ได้สักที เพราะมันสำคัญต่อ SEO
ขอบคุณครับ
Date :
2009-06-10 22:58:34
By :
pun05
include( $conf['path'].'/'.'category.php?classified='.$uri[0]);
บรรทัดนี้มั้งคับ
ผมก็ไม่เคยใช้ เลยนะครับ
คงเป็นเพราะมันให้ไปที่ index.php ตลอด เลย include มาไม่ได้มั้ง
แล้ว $conf['path'] มีค่าเป็นอะไรคับ
มันอาจจะมีคำสั่งให้เฉพาะใน เซิร์ฟเวอ สามารถเรียกได้หมดนะ
Date :
2009-06-10 23:16:17
By :
pjgunner
Code (PHP)
แล้ว $conf['path'] มีค่าเป็นอะไรคับ
ถ้า url
http://www.xxx.com/1234/1.html
ค่า $conf['path'
คือ http://www.xxx.com ครับ
ที่ error ผมแปลไม่ถูกครับ
Date :
2009-06-10 23:23:53
By :
pun05
ลองแก้ด้วยการตั้งค่าตัวแปร classified แล้ว ค่อย include คับ อย่า เรียกแบบนั้น
Date :
2009-06-10 23:26:37
By :
pjgunner
ขอบคุณครับ คุณ เอี่ยว(Rest)
เดี่ยวผมลองแก้ดูครับ
ไม่ทราบว่าคุณ เอี่ยว จบจากไหนครับ
Date :
2009-06-11 08:45:46
By :
pun05
$inc คือ path เต็มๆ ของเว็บนะครับ ไม่ไช่ URL
เช่น
ลองตั้งค่า $inc = '/home/postfree/domains/postfree108.com/public_html/';
Date :
2009-06-11 08:58:50
By :
danya
และค่า $conf['path']
คือแบบนี้ครับ
$conf['path'] = '/home/postfree/domains/postfree108.com/public_html/';
ไม่ไช่
$conf['path'] = 'http://www.xxx.com';
ลองดุๆๆผมก้เคยเผลอเหมือนกันเลยบอกได้ 555+
Date :
2009-06-11 09:00:13
By :
danya
ขอบคุณครับคุณ ดุนยา
เดี่ยวลองดู ครับ ได้ความรู้เพิ่มอีก
Date :
2009-06-11 12:25:03
By :
pun05
คุณ ดุนยา
link เราต้องกำหนดอย่างไรครับในการส่งไปทำ rewrite
ผมถึงข้อมูลมาจาก db
ปกติผมใช้แบบนี้
Code (PHP)
echo " <a href=\"category.php?clssified=$category_type1\" >XXXX</a>";
หรือกำหนดอย่างนี้
Code (PHP)
echo " <a href=\"http://localhost/$category_type1\" >XXXX</a>";
ตรงนี้ผมก็ยังไม่เข้าในว่าต้องทำ link รู้แบบไหนเพื่อไป rewrite
Date :
2009-06-11 18:32:01
By :
pun05
เอ ไม่ค่อยเข้าใจคำถามอะคับ
เพระา Mod_rewrite เราจะไปจัดการอับไฟล์ .htaccess อีกที
การทำลิงค์ ก็ทำแบบที่สองนะ
Date :
2009-06-11 18:36:16
By :
danya
งั้นผมขอตัว code เกี่ยวกับนี้หน่อยได้ไม่ครับ
$conf['path'] = '/home/postfree/domains/postfree108.com/public_html/';
เพราะนึกภาพไม่ออก ว่ามันส่งตัวแปลอย่างไร
นี้ผมก็นั่งมั่วๆอยู่ครับ
Date :
2009-06-11 18:50:14
By :
pun05
Load balance : Server 02