Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > จากระทู้ เรื่องการ URL Rewrite Apache mod_rewrite ลองมาปรับใช้แล้วไม่เกิดผล



 

จากระทู้ เรื่องการ URL Rewrite Apache mod_rewrite ลองมาปรับใช้แล้วไม่เกิดผล

 



Topic : 123133



โพสกระทู้ ( 39 )
บทความ ( 0 )



สถานะออฟไลน์




จากเดิม ผมสามารถทำได้แล้วซึ่งเดิม นำมา mod_rewrite แค่ id
ตอนนี้จะมาปรับเป็นเพิ่ม keyword ต่อท้าย แต่ทำแล้ว ไม่ได้ครับ ขึ้น

Not Found

The requested URL /line/56/ampppp was not found on this server


code

หน้า แสดงผล ที่รับค่าจาก &_GET
Code (PHP)
<?php 
include('connect.inc.php');
mysql_query("UPDATE member SET m_view=(m_view+1) WHERE m_id = '".$_GET["id"]."' AND m_line = '".$_GET["line"]."'" );
if($_GET[id] && $_GET[line] =="");
$sqls="SELECT * FROM member where m_id ='".$_GET[id]."' AND m_line = '".$_GET[line]."'";
$results=mysql_query($sqls);
$num=mysql_num_rows($results);
if($num<1){header("Location: index.php");exit();}
$row=mysql_fetch_array($results);
?>


code URL Rewrite

Code
RewriteEngine on RewriteRule ^/?line/([^/]*)$ /line.php?id=$1&line=$2 [NC,L]




หน้าสำหรับ คลิก

<a target="_blank" href="line/<?php echo $row[m_id];?>/<?php echo $row[m_line];?>"></a>



Tag : PHP









ประวัติการแก้ไข
2016-05-31 10:15:34
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2016-05-31 10:13:53 By : yuttakarn View : 1113 Reply : 16
 

 

No. 1



โพสกระทู้ ( 2,311 )
บทความ ( 1 )



สถานะออฟไลน์


Code (PHP)
RewriteEngine on

RewriteRule ^line/([0-9]+)/(.*)$ /line.php?id=$1&line=$2 [NC,L]







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-05-31 10:21:47 By : arm8957
 


 

No. 2



โพสกระทู้ ( 39 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : arm8957 เมื่อวันที่ 2016-05-31 10:21:47
รายละเอียดของการตอบ ::
ขอบคุณครับ ได้แล้วครับ

ขอสอบถามเพิ่มเติมครับ


สมุติว่า http://www.domain.com/line/49/ammy

แต่พอเราลบammy ก้ยังแสดงผลของ id 49 ได้ปกติ

ต้องเพิ่มตรงไหนหรอครับ เพราะ พอผมลบออก http://www.domain.com/line/49
มันขึ้น

Not Found

The requested URL /line/49 was not found on this server.
www.linefriendly.com


และอีกส่วน ก็ พอผมใส่ / หลัง 49 เช่น http://www.domain.com/line/49/ มันก็จะเด้ง

หน้า www.domain.com ไม่ทำงาน

www.domain.com เปลี่ยนเส้นทางของคุณบ่อยเกินไป
ลอง:
โหลดหน้าใหม่
ล้างคุกกี้
ERR_TOO_MANY_REDIRECTS


ขอบคุณครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-05-31 10:35:13 By : yuttakarn
 

 

No. 3



โพสกระทู้ ( 2,311 )
บทความ ( 1 )



สถานะออฟไลน์


Code (PHP)
RewriteEngine on

RewriteRule ^line/([0-9]+)/(.*)$ /line.php?id=$1&line=$2 [NC,L]
RewriteRule ^line/([0-9]+)/$ /line.php?id=$1 [NC,L]

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-05-31 11:04:16 By : arm8957
 


 

No. 4



โพสกระทู้ ( 39 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 3 เขียนโดย : arm8957 เมื่อวันที่ 2016-05-31 11:04:16
รายละเอียดของการตอบ ::
ไม่ได้ครับ


อันนี้ผมใช้ url ที่ /line/62

erro page


Not Found

The requested URL /line/62 was not found on this server.


อันนี้ /line/62/ เพิ่ม / ต่อท้าย

url เปลี่ยนทาง /line/61/index.php


หน้า www.domain.com ไม่ทำงาน

www.domain.com เปลี่ยนเส้นทางของคุณบ่อยเกินไป
ลอง:
โหลดหน้าใหม่
ล้างคุกกี้
ERR_TOO_MANY_REDIRECTS

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-05-31 11:07:08 By : yuttakarn
 


 

No. 5



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



สถานะออฟไลน์


แบบนี้ดีกว่าครับ
RewriteRule line/([0-9]+.*) /line.php?rq=$1 [NC,L]

แล้วในโค๊ด line.php คุณไปจัดสรร $_GET['rq'] เอาเอง

ใน modrewrite พอแบ่งส่วนสำคัญๆ ที่เหลือใช้โปรแกรม จัดสรรครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-05-31 13:33:40 By : Chaidhanan
 


 

No. 6



โพสกระทู้ ( 39 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 5 เขียนโดย : Chaidhanan เมื่อวันที่ 2016-05-31 13:33:40
รายละเอียดของการตอบ ::
if($_GET[id] AND $_GET[line] ==""){header("Location: index.php");exit();}



ผมเอามาลองใส่แล้ว ตัวนี้มันเช็ค มันก็มีอาการแบบเดิมครับ


url ที่ /line/62

erro page


Not Found

The requested URL /line/62 was not found on this server.


อันนี้ /line/62/ เพิ่ม / ต่อท้าย

url เปลี่ยนทาง /line/61/index.php


หน้า www.domain.com ไม่ทำงาน

www.domain.com เปลี่ยนเส้นทางของคุณบ่อยเกินไป
ลอง:
โหลดหน้าใหม่
ล้างคุกกี้
ERR_TOO_MANY_REDIRECTS

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-05-31 13:43:04 By : yuttakarn
 


 

No. 7



โพสกระทู้ ( 39 )
บทความ ( 0 )



สถานะออฟไลน์


ไม่ได้เลยครับ ลองสลับนั้นนี้ไม่ได้สักทีครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-05-31 20:38:14 By : yuttakarn
 


 

No. 8



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



สถานะออฟไลน์


RewriteRule line/(.*) /line.php?rq=$1 [NC,L]
จากบันทัดบน

เรียกด้วย http://mydomain.com/line/567/abc/789/xyz

เมื่อ echo $_GET['rq]; จะได้ 567/abc/789/xyz
เรามา แบ่งsegment ได้เป็น
$segment = explode('/', $_GET['rq']);
จะได้
$segment[0]=567
$segment[1]=abc
$segment[2]=789
$segment[3]=xyz

หรือจะใส่แค่ .../line/
ก็ตรวจสอบ $_GET['rq'] ก่อนว่ามีความยาวไหม
ค่อยแบ่งคำ อาจได้ จำนวน $sebment ไม่เท่ากันแล้วแต่จำนวน / ก็เช็คได้ง่ายๆ



จะทำอะไรกับตัวแปรเหล่านี้ก็ว่ากันไปครับ


ประวัติการแก้ไข
2016-05-31 21:22:33
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-05-31 21:21:12 By : Chaidhanan
 


 

No. 9



โพสกระทู้ ( 39 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 8 เขียนโดย : Chaidhanan เมื่อวันที่ 2016-05-31 21:21:12
รายละเอียดของการตอบ ::
ตอนนี้ที่ผมใช้

<?php
include('connect.inc.php');
mysql_query("UPDATE member SET m_view=(m_view+1) WHERE m_id = '".$_GET["id"]."' AND m_line = '".$_GET["line"]."'" );
if($_GET[id] AND $_GET[line] ==""){header("Location: index.php");exit();}
$sqls="SELECT * FROM member where m_id ='".$_GET[id]."' AND m_line = '".$_GET[line]."' ";
$results=mysql_query($sqls);
$num=mysql_num_rows($results);
if($num<1){header("Location: index.php");exit();}
$row=mysql_fetch_array($results);
?>


ผมยังงงพยายามเข้าใจที่อาจารย์สอนมา จะมาประยุกยังไง พยายามเข้าใจแต่ก็ไม่เข้าใจรับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-05-31 21:28:09 By : yuttakarn
 


 

No. 10



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



สถานะออฟไลน์


Code
#REWRITE index.php #START USING REWRITE ENGINE RewriteEngine On #REWRITE CONDITON RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d #WHEN YOU FOUND index.php IT WILL REWRITE To / AUTOMATICALLY RewriteRule line(/.*)* /line.php/$0 [PT,L]

$_GET['rq'] จะได้อักษร lineและอักษรต่อท้ายทุกตัว
เช่น
http://mydomain.com/line จะได้ line
http://mydomain.com/line/ จะได้ line/
http://mydomain.com/line/789/abc จะได้ line/789/abc

ในโปรแกรม line.php
Code (PHP)
<?php
include('connect.inc.php');
$seg = explode('/', $_GET['rq']); // แบ่ง segment ด้วยคำสั่ง explode delimiter คือ /
$id=intval('0'.(isset($seg[1])? trim($seg['1']): '')); // นำ segment 1 เข้า $id  (segment 0 คือคำว่า line)
$line=mysql_real_escape_string(isset($seg[2])? trim($seg[2]): ''); // นำ segment 2 เข้า $line
if($id==0 || strlen($line)==0){ header("Location: index.php"); exit;} // redirect ถ้าไม่ตรงเงื่อนไข

mysql_query("UPDATE member SET m_view=(m_view+1) WHERE m_id = ".$id." AND m_line = '".$line."'" );
if( mysql_affected_rows()==0) {header("Location: index.php");exit();} // redirect เมื่อไม่มีรายการอัพเดท 
$sqls="SELECT * FROM member where m_id =".$id." AND m_line = '".$line."' ";
$results=mysql_query($sqls);
$num=mysql_num_rows($results);
$row=mysql_fetch_array($results);


ถ้า รุ่น php สามารถใช้ mysqli ได้ ก็ใช้ mysqli เถอะครับ ใช้ง่ายกว่ากันเยอะเลย
ตัวอย่างการใช้ mysqli
Code (PHP)
<?php
$seg = explode('/', $_GET['rq']); // แบ่ง segment ด้วยคำสั่ง explode delimiter คือ /
$id=intval('0'.(isset($seg[1])? trim($seg['1']): '')); // นำ segment 1 เข้า $id  (segment 0 คือคำว่า line)
$line=isset($seg[2])? trim($seg[2]): ''; // นำ segment 2 เข้า $line
if($id==0 || strlen($line)==0){ header("Location: index.php"); exit;} // redirect ถ้าไม่ตรงเงื่อนไข

$db=new mysqli('host','user','password','database') or die( mysqli_connect_error());
$line = $db->real_escape_string($line);
$db->query("UPDATE member SET m_view=(m_view+1) WHERE m_id = ".$id." AND m_line = '".$line."'" );
if( $db->affected_rows==0) {header("Location: index.php");exit();} // redirect เมื่อไม่มีรายการอัพเดท 
$sqls="SELECT * FROM member where m_id =".$id." AND m_line = '".$line."' ";
$results=$db->query($sqls);
$num=$result->num_rows;
$row=$result->fetch_assoc();

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-01 04:06:25 By : Chaidhanan
 


 

No. 11



โพสกระทู้ ( 39 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 10 เขียนโดย : Chaidhanan เมื่อวันที่ 2016-06-01 04:06:25
รายละเอียดของการตอบ ::
ในหน้า index

<a target="_blank" href="line/<?php echo $row[m_id];?>/<?php echo $row[m_line];?>" title="<?php echo $row[m_name];?>">

ผมใช้ตัวเดิมได้เลยใช่ไหมครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-01 07:50:06 By : yuttakarn
 


 

No. 12



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



สถานะออฟไลน์


ครับ ก็น่าจะได้ ถ้ามีแค่ 2 ฟีลด์
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-01 08:35:53 By : Chaidhanan
 


 

No. 13



โพสกระทู้ ( 39 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 12 เขียนโดย : Chaidhanan เมื่อวันที่ 2016-06-01 08:35:53
รายละเอียดของการตอบ ::


ผมใส่ไปแล้วครับ ตามที่อาจารย์กำหนด codeมาให้ แต่มันใช้งานแล้ว error ครับ

โดยผมเรียก url http://www.domain.com/line/61/slim

ีurl redirect ไปหน้า

http://www.domain.com/line/61/index.php


Code
หน้า www.domain.com ไม่ทำงาน www.domain.com เปลี่ยนเส้นทางของคุณบ่อยเกินไป ลอง: โหลดหน้าใหม่ ล้างคุกกี้ ERR_TOO_MANY_REDIRECTS





แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-01 09:14:20 By : yuttakarn
 


 

No. 14



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



สถานะออฟไลน์


<a target="_blank" href="/line/<?php echo $row[m_id];?>/<?php echo $row[m_line];?>" title="<?php echo $row[m_name];?>">

ใส่ สีแดง ดูครับ เป็นการกำหนดให้เรียกจาก root
พยายามเขียนลิงค์ ให้เริ่มต้นจาก root ครับ เพราะตำแหน่ง url มันถูกเปลี่ยนแปลงไป

ซึ่งแบบที่เขียน มันจะเอาค่า ที่เราพิมพื ตัด secment สุดท้ายออก
เช่น request เข้ามา /line/56/abc

พอมาใส่ tag a แบบไม่มี / นำหน้าจะได้ ลิงค์ ไปที่ /line/56/line/$row[m_id]/$row[m_line]
ซื้อจะทำให้หาไม่เจอ และวนไปเรื่อยๆ จนเออเร่อร์ อย่างที่เห็นครับ


ประวัติการแก้ไข
2016-06-01 12:48:21
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-01 12:47:04 By : Chaidhanan
 


 

No. 15



โพสกระทู้ ( 39 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 14 เขียนโดย : Chaidhanan เมื่อวันที่ 2016-06-01 12:47:04
รายละเอียดของการตอบ ::
ผมลองใส่ตามที่อาจารย์บออกก็ไม่ได้ครับแบบเดิมเลยครับ ผมใช้ของอาจารย์เดิมๆเลย

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-01 13:48:28 By : yuttakarn
 


 

No. 16



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



สถานะออฟไลน์


ถ้ามี teamview หลังไมค์มาครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-01 13:55:32 By : Chaidhanan
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : จากระทู้ เรื่องการ URL Rewrite Apache mod_rewrite ลองมาปรับใช้แล้วไม่เกิดผล
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่