การ redirect แบบง่าย URL Redirect

การ redirect แบบง่าย 
การ redirect แบบง่ายสามารถทำได้ด้วยการใช้ meta tag ของ html code ดังตัวอย่างต่อไปนี้ : 

<html> 
<head> 
<META HTTP-EQUIV="Refresh" CONTENT=" 0 ;URL=http://www.yourname.com " > 
< / head> 
< / html> 

ซึ่งถ้าเอา source code ข้างบนนี้ไปเป็นไฟล์หลักในตำแหน่ง document root บน Web Server ก็จะทำให้เว็บเพจถูก redirect ไปยัง http://www.yourname.com โดยทันที เพราะค่าของ CONTENT=0 แต่ถ้าต้องการหน่วงเวลาให้ผู้ใช้ได้อ่านข้อความบางอย่าง ก่อนการ redirect ก็สามารถทำได้ด้วยการกำหนดค่า CONTENT ไม่เป็น 0 ดังตัวอย่างต่อไปนี้ : 

<html>
<head>
<META HTTP-EQUIV="Refresh" CONTENT="5;URL=http://www.yourname.com">
</head>
<body>
<center>
เว็บไซต์ของเรามีการเปลี่ยนเป็นชื่อใหม่แล้ว การเข้ามาเว็บไซต์ของเราครั้งต่อไป กรุณาใช้ชื่อ
<a href="http://www.yourname.com">www.yourname.com</a>
</center>
</body>
</html> 

แต่วิธีการ redirect แบบข้างบนนี้จะทำให้ชื่อ url ตรงช่อง address ของ browser ถูกเปลี่ยนไปเป็นชื่อใหม่ คือ http://www.yourname.com วิธีการ redirect ที่ไม่ต้องการให้ชื่อ url เปลี่ยนเป็นอันใหม่ ผมไม่ทราบเหมือนกันว่าจะมีวิธีการทำที่ง่ายกว่าของผมหรือเปล่า ถ้าใครมีวิธีที่ง่ายกว่า ช่วยเมล์มาบอกด้วยก็แล้วกันครับ ในส่วนวิธีของผมนั้นใช้คำสั่ง frame  (อาจจะเรียกว่า frame redirect หรือ frame to URL) ดังต่อไปนี้ครับ : 

<html> 
<head> 
<title> เพจนี้เป็นการ redirect ครับ < / title> 
< / head> 
<frameset cols="*"> 
<frame src="http://www.anydomain.xxx/yourname " > 
< / frameset> 
< / html> 

โค้ดการ redirect ข้างบนนี้ชื่อของ url จะไม่ถูกเปลี่ยนไปเป็นชื่อใหม่ครับ

วิธีการเขียนโค้ดของ url redirect สำหรับ Web hosting
( บอกกล่าวกันก่อน-- > โค้ดที่จะกล่าวถึงต่อไปนี้ผมเขียนขึ้นมาจากประสบการณ์ ( เท่าที่จะแก้ปัญหาเฉพาะหน้าได้ครับ) ไม่ทราบเหมือนกันว่าที่เขาให้บริการ Web hosting จริง ๆ จะใช้เหมือนของผมหรือเปล่า ถ้ามีวิธีการที่ดีกว่านี้ช่วยเมล์มาบอกด้วยก็แล้วกัน) 

จากที่ได้กล่าวมาแล้วนะครับว่าบริการ Web hosting นั้นตัว Webserver ที่ให้บริการนั้นจะถูกชี้มาจาก DNS Serer หลาย ๆ โดเมน ดังนั้นใน Web Server เองจะต้องมีการตรวจจับเสียก่อนว่า url ที่ผู้ใช้เรียกมาเป็น url อะไร เพื่อจะได้ชี้ไปยังตำแหน่งที่ถูกต้องจริง ๆ ของแต่ละโดเมน

ตัวอย่างที่ผมจะกล่าวต่อไปนี้มี 2 ตัวอย่าง ครับ ตัวอย่างแรก เป็นแบบที่ชื่อของ url ถูกเปลี่ยนเป็นชื่อใหม่ และตัวอย่างที่สอง เป็นแบบที่ชื่อของ URL ไม่ถูกเปลี่ยนเป็นชื่อใหม่ (frame redirect) 

สมมุติว่า Web Server ถูกชี้มาจาก DNS Server จำนวน 2 โดเมน ดังนั้นไฟล์ที่เป็นไฟล์หลักในตำแหน่ง doucument root บน Web Server ต้องมีการตรวจสอบก่อนว่าผู้ใช้ต้องการเรียกไปยังโดเมนไหน โดยใช้ javascript เข้ามาช่วย และเมื่อรู้แล้วว่าผู้ใช้ต้องการเข้าสู่โดเมนไหน ก็จะต้องสั่งให้ไปยังตำแหน่งไฟล์จริง ๆ ของโดเมนนั้น ๆ ดังนี้ :

<html> 
<head> 
<script langquage='javascript'> 
    var url=document.location; //ตรวจสอบว่าผู้ใช้ต้องการเรียกเข้าสู่โดเมนไหน
    if ( (url=="http://www.firstdomain.com") || (url=="http://www.firstdomain.com/ " ) )
       { 
          window.location="http://www.yourdomain.xxx/firstdomain"; 
       } 
    else if ((url=="http://www.seconddomain.com") || (url=="http://www.seconddomain.com/ " ) )
       { 
          window.location="http://www.yourdomain.xxx/seconddomain"; 
       } 
    else 
       { 
          window.location="http://www.yourdomain.xxx/underconstruction.html"; 
       } 
< / script> 
< / head> 
< / html> 

และจากตัวอย่างเดียวกันนี้ถ้าต้องการไม่ให้ url ในช่อง address ของ browser ไม่มีการเปลี่ยนไปเป็นตำแหน่งที่แท้จริง ก็ทำได้ด้วยการใช้คำสั่ง frame เข้ามาช่วยดังต่อไปนี้ :

<html>
<script langquage='javascript'>
url=document.location;
if ((url=="http://www . firstdomain.com") || (url=="http://www . firstdomain.com/"))
{
document.write("<head><title>www.firstdomain.com</title></head>");
document.write('<frameset cols="*">');
document.write('<frame src="http://www.yourdomain.xxx/firstdomain">');
document.write("</frameset>");
}
else if (url=="http://www.seconddomain.com") || (url=="http://www.seconddomain.com/"))
{
document.write("<head><title>www.seconddomain.com</title></head>");
document.write('<frameset cols="*">');
document.write('<frame src="http://www.yourdomain.xxx/seconddomain">');
document.write("</frameset>");
}
else
{
document.write('<frameset cols="*">');
document.write('<frame src="http://www.yourdomain.xxx/underconstruction.html">');
document.write("</frameset>");
}
</script>
</html>

การทำ URL Redirect โดยใช้ PHP 
ถ้ามีความจำเป็นที่จะต้องทำการ Redirect โดยการใข้ภาษา PHP ก็สามารถทำได้เช่นกัน นั่นคือใช้รูปแบบโครงสร้างของภาษาเป็นแบบเดียวกันกับที่กล่าวมาเพียงแต่เปลี่ยนคำสั่งดังตัวอย่างต่อไปนี้ ซึ่งเป็นแบบที่ address ไม่เปลี่ยนแปลง (frame to URL)

<?
switch ($SERVER_NAME){
             case "www.firstdomain.com";{
                         echo '<frameset cols="*">';
                         echo '<frame src="http://www.yourdomain.xxx/firstdomain">';
                         echo "</frameset>"; 
                         break;}
             case "www.seconddomain.com";{
                        echo '<frameset cols="*">';
                        echo '<frame src="www.yourdomain.xxx/seconddomain">';
                        echo "</frameset>"; 
                        break;}
             default;{
                        echo '<frameset cols="*">';
                        echo '<frame src="http://www.yourdomain.xxx/underconstruction.html">';
                        echo "</frameset>";} 
       }

มาถึงตอนนี้ผมหวังว่าท่านคงจะสามารถนำตัวอย่างที่ผมได้แนะนำไปประยุกต์ใช้ให้เหมาะสมได้แล้วนะครับ   มีคำแนะนำอะไรเพิ่มเติมก็ mail มาหาผมได้ครับ 

Thank you 

<html>
<head>
<META HTTP-EQUIV="Refresh" CONTENT="0;URL=http://www.yourname.com">
</head>
</html> 

ซึ่งถ้าเอา source code ข้างบนนี้ไปเป็นไฟล์หลักในตำแหน่ง document root บน Web Server ก็จะทำให้เว็บเพจถูก redirect ไปยัง http://www.yourname.com โดยทันที เพราะค่าของ CONTENT=0 แต่ถ้าต้องการหน่วงเวลาให้ผู้ใช้ได้อ่านข้อความบางอย่าง ก่อนการ redirect ก็สามารถทำได้ด้วยการกำหนดค่า CONTENT ไม่เป็น 0 ดังตัวอย่างต่อไปนี้ :

<html>
<head>
<META HTTP-EQUIV="Refresh" CONTENT="5;URL=http://www.yourname.com">
</head>
<body>
<center>
เว็บไซต์ของเรามีการเปลี่ยนเป็นชื่อใหม่แล้ว การเข้ามาเว็บไซต์ของเราครั้งต่อไป กรุณาใช้ชื่อ
<a href="http://www.yourname.com">www.yourname.com</a>
</center>
</body>
</html>

แต่วิธีการ redirect แบบข้างบนนี้จะทำให้ชื่อ url ตรงช่อง address ของ browser ถูกเปลี่ยนไปเป็นชื่อใหม่ คือ http://www.yourname.com วิธีการ redirect ที่ไม่ต้องการให้ชื่อ url เปลี่ยนเป็นอันใหม่ ผมไม่ทราบเหมือนกันว่าจะมีวิธีการทำที่ง่ายกว่าของผมหรือเปล่า ถ้าใครมีวิธีที่ง่ายกว่า ช่วยเมล์มาบอกด้วยก็แล้วกันครับ ในส่วนวิธีของผมนั้นใช้คำสั่ง frame  (อาจจะเรียกว่า frame redirect หรือ frame to URL) ดังต่อไปนี้ครับ :

<html>
<head>
<title>เพจนี้เป็นการ redirect ครับ</title>
</head>
<frameset cols="*">
<frame src="http://www.anydomain.xxx/yourname">
</frameset>
</html>

โค้ดการ redirect ข้างบนนี้ชื่อของ url จะไม่ถูกเปลี่ยนไปเป็นชื่อใหม่ครับ

วิธีการเขียนโค้ดของ url redirect สำหรับ Web hosting
(บอกกล่าวกันก่อน-->โค้ดที่จะกล่าวถึงต่อไปนี้ผมเขียนขึ้นมาจากประสบการณ์ (เท่าที่จะแก้ปัญหาเฉพาะหน้าได้ครับ) ไม่ทราบเหมือนกันว่าที่เขาให้บริการ Web hosting จริง ๆ จะใช้เหมือนของผมหรือเปล่า ถ้ามีวิธีการที่ดีกว่านี้ช่วยเมล์มาบอกด้วยก็แล้วกัน) 

จากที่ได้กล่าวมาแล้วนะครับว่าบริการ Web hosting นั้นตัว Webserver ที่ให้บริการนั้นจะถูกชี้มาจาก DNS Serer หลาย ๆ โดเมน ดังนั้นใน Web Server เองจะต้องมีการตรวจจับเสียก่อนว่า url ที่ผู้ใช้เรียกมาเป็น url อะไร เพื่อจะได้ชี้ไปยังตำแหน่งที่ถูกต้องจริง ๆ ของแต่ละโดเมน

ตัวอย่างที่ผมจะกล่าวต่อไปนี้มี 2 ตัวอย่าง ครับ ตัวอย่างแรก เป็นแบบที่ชื่อของ url ถูกเปลี่ยนเป็นชื่อใหม่ และตัวอย่างที่สอง เป็นแบบที่ชื่อของ URL ไม่ถูกเปลี่ยนเป็นชื่อใหม่ (frame redirect) 

สมมุติว่า Web Server ถูกชี้มาจาก DNS Server จำนวน 2 โดเมน ดังนั้นไฟล์ที่เป็นไฟล์หลักในตำแหน่ง doucument root บน Web Server ต้องมีการตรวจสอบก่อนว่าผู้ใช้ต้องการเรียกไปยังโดเมนไหน โดยใช้ javascript เข้ามาช่วย และเมื่อรู้แล้วว่าผู้ใช้ต้องการเข้าสู่โดเมนไหน ก็จะต้องสั่งให้ไปยังตำแหน่งไฟล์จริง ๆ ของโดเมนนั้น ๆ ดังนี้ :

<html>
<head>
<script langquage='javascript'>
    var url=document.location; //ตรวจสอบว่าผู้ใช้ต้องการเรียกเข้าสู่โดเมนไหน
    if ((url=="http://www.firstdomain.com") || (url=="http://www.firstdomain.com/"))
       {
          window.location="http://www.yourdomain.xxx/firstdomain";
       }
    else if ((url=="http://www.seconddomain.com") || (url=="http://www.seconddomain.com/"))
       {
          window.location="http://www.yourdomain.xxx/seconddomain";
       }
    else
       {
          window.location="http://www.yourdomain.xxx/underconstruction.html";
       }
</script>
</head>
</html>

และจากตัวอย่างเดียวกันนี้ถ้าต้องการไม่ให้ url ในช่อง address ของ browser ไม่มีการเปลี่ยนไปเป็นตำแหน่งที่แท้จริง ก็ทำได้ด้วยการใช้คำสั่ง frame เข้ามาช่วยดังต่อไปนี้ :

<html>
<script langquage='javascript'>
url=document.location;
if ((url=="http://www.firstdomain.com") || (url=="http://www.firstdomain.com/"))
{
document.write("<head><title>www.firstdomain.com</title></head>");
document.write('<frameset cols="*">');
document.write('<frame src="http://www.yourdomain.xxx/firstdomain">');
document.write("</frameset>");
}
else if (url=="http://www.seconddomain.com") || (url=="http://www.seconddomain.com/"))
{
document.write("<head><title>www.seconddomain.com</title></head>");
document.write('<frameset cols="*">');
document.write('<frame src="http://www.yourdomain.xxx/seconddomain">');
document.write("</frameset>");
}
else
{
document.write('<frameset cols="*">');
document.write('<frame src="http://www.yourdomain.xxx/underconstruction.html">');
document.write("</frameset>");
}
</script>
</html>

การทำ URL Redirect โดยใช้ PHP 
ถ้ามีความจำเป็นที่จะต้องทำการ Redirect โดยการใข้ภาษา PHP ก็สามารถทำได้เช่นกัน นั่นคือใช้รูปแบบโครงสร้างของภาษาเป็นแบบเดียวกันกับที่กล่าวมาเพียงแต่เปลี่ยนคำสั่งดังตัวอย่างต่อไปนี้ ซึ่งเป็นแบบที่ address ไม่เปลี่ยนแปลง (frame to URL)

<?
switch ($SERVER_NAME){
             case "www.firstdomain.com";{
                         echo '<frameset cols="*">';
                         echo '<frame src="http://www.yourdomain.xxx/firstdomain">';
                         echo "</frameset>"; 
                         break;}
             case "www.seconddomain.com";{
                        echo '<frameset cols="*">';
                        echo '<frame src="www.yourdomain.xxx/seconddomain">';
                        echo "</frameset>"; 
                        break;}
             default;{
                        echo '<frameset cols="*">';
                        echo '<frame src="http://www.yourdomain.xxx/underconstruction.html">';
                        echo "</frameset>";} 
       }

มาถึงตอนนี้ผมหวังว่าท่านคงจะสามารถนำตัวอย่างที่ผมได้แนะนำไปประยุกต์ใช้ให้เหมาะสมได้แล้วนะครับ  มีคำแนะนำอะไรเพิ่มเติมก็ mail มาหาผมได้ครับ

ขอบคุณข้อมูลจาก : ITWIZARD

..... อ่านต่อได้ที่: https://www.gotoknow.org/posts/193317

  • 1 Users Found This Useful
Was this answer helpful?

Related Articles

วิธีการใช้ Domain Pointer ใน DirectAdmin Control Panel

Domain Pointer เป็นการเพิ่มโดเมนอื่นเข้าไปในโดเมนหลัก...