
การ Redirect URL คือกระบวนการส่งผู้ใช้จาก URL หนึ่งไปยังอีก URL หนึ่งโดยอัตโนมัติ DirectAdmin มีฟีเจอร์ Site Redirects ที่ช่วยให้คุณสร้าง Redirect ได้โดยไม่ต้องแก้ไขไฟล์ .htaccess ด้วยตัวเอง เพียงไม่กี่คลิกก็สร้าง 301 หรือ 302 Redirect ได้ทันที
Site Redirects ใน DirectAdmin คืออะไร ทำไมต้องใช้
Site Redirects เป็นฟีเจอร์ที่อยู่ในส่วน Advanced Features ของ DirectAdmin ช่วยให้คุณกำหนดได้ว่าเมื่อผู้ใช้เข้าถึง URL หนึ่ง ระบบจะส่งไปยัง URL ใด กรณีที่ควรใช้ Redirect มีหลายอย่าง เช่น:
- ย้ายหน้าเว็บไปยัง URL ใหม่ถาวร
- เปลี่ยนชื่อโดเมน แต่ต้องการรักษา SEO เดิม
- ย้ายจาก HTTP ไปยัง HTTPS (แต่ปัจจุบัน SSL มักจัดการเรื่องนี้ให้แล้ว)
- ปิดหน้าเก่าและส่งผู้ใช้ไปยังหน้าใหม่ที่เกี่ยวข้อง
- Redirect URL ชั่วคราวระหว่างการปรับปรุงเว็บ
301 Permanent Redirect vs 302 Temporary Redirect ต่างกันอย่างไร
301 Permanent Redirect
บอก Browser และ Search Engine ว่า URL นี้ย้ายไปยัง URL ใหม่ถาวรแล้ว Google จะโอน Link Equity และอันดับ SEO ไปยัง URL ใหม่ตามเวลา Browser มักจะจำ Redirect นี้ไว้ใน Cache ด้วย เหมาะสำหรับการย้าย URL ถาวรทุกประเภท
302 Temporary Redirect
บอก Browser และ Search Engine ว่า URL นี้ถูกย้ายชั่วคราว Link Equity จะไม่ถูกโอน Search Engine จะยังจดจำ URL เดิมไว้เป็นหน้าหลัก เหมาะสำหรับ A/B Testing หรือ Redirect ชั่วคราวระหว่างซ่อมบำรุงเว็บ
วิธีสร้าง Redirect ใน DirectAdmin
- เข้าสู่ระบบ DirectAdmin แล้วไปที่หมวด Advanced Features
- คลิก Site Redirects
- เลือกโดเมนที่ต้องการสร้าง Redirect ในช่อง Domain
- กรอก Source URL (URL ต้นทาง) เช่น
/old-page - กรอก Destination URL (URL ปลายทาง) เช่น
https://www.example.com/new-page - เลือกประเภท: 301 (Permanent) หรือ 302 (Temporary)
- คลิก Add เพื่อบันทึก
Redirect ทั้งโดเมน
หากต้องการ Redirect ทั้งโดเมนไปยังโดเมนอื่น เช่น redirect จาก oldsite.com ไปยัง newsite.com:
- ในช่อง Source URL ใส่เครื่องหมาย
/(root path) - ในช่อง Destination URL ใส่ URL เต็ม เช่น
https://www.newsite.com/ - เลือก 301 Permanent
- คลิก Add
วิธีนี้จะ Redirect ทุก URL ที่เริ่มต้นด้วย / ไปยัง Destination URL ที่กำหนด
Redirect เฉพาะ Path
การ Redirect เฉพาะ path ใช้เมื่อต้องการส่งผู้ใช้จากหน้าเก่าไปยังหน้าใหม่ เช่น:
/old-page→/new-page/products/item-123→/shop/product-name/blog/2024/post-title→/articles/post-title
กรอก Source URL เป็น path เริ่มต้นด้วย / และ Destination URL เป็น path หรือ URL เต็มก็ได้ DirectAdmin จะสร้างกฎ Redirect ใน .htaccess ให้โดยอัตโนมัติ
คำแนะนำ SEO: ใช้ 301 Permanent Redirect สำหรับการย้าย URL ถาวรทุกครั้ง เพื่อให้ Google โอน Link Equity และรักษาอันดับการค้นหาเดิมไว้ 302 ใช้เฉพาะเมื่อต้องการ Redirect ชั่วคราวเท่านั้น
ตรวจสอบ Redirect ว่าทำงานถูกต้อง
หลังจากสร้าง Redirect แล้ว ควรตรวจสอบว่าทำงานถูกต้องด้วยวิธีดังนี้:
- เปิด Browser แล้วพิมพ์ Source URL ตรงๆ ดูว่า Redirect ไปยัง Destination URL หรือไม่
- ใช้เครื่องมือ Redirect Checker ออนไลน์ เช่น httpstatus.io เพื่อดู HTTP Status Code ว่าเป็น 301 หรือ 302
- ใน Google Search Console ตรวจสอบว่า Google รับรู้การ Redirect ใหม่แล้วหรือยัง
- หากต้องการลบ Redirect กลับไปที่หน้า Site Redirects แล้วคลิก Delete ข้าง Redirect นั้น
ประเภท HTTP Redirect ที่ควรรู้และผลต่อ SEO
HTTP Redirect มีหลายประเภทตาม Status Code แต่ละประเภทส่งสัญญาณที่แตกต่างกันไปยัง Browser และ Search Engine ซึ่งส่งผลโดยตรงต่อ SEO ของเว็บไซต์
301 Permanent Redirect
บอกว่า URL นี้ย้ายถาวรแล้ว Google จะโอน Link Equity (PageRank) เกือบทั้งหมดจาก URL เก่าไปยัง URL ใหม่ และจะลบ URL เก่าออกจาก Index ในที่สุด เป็น Redirect ที่ควรใช้มากที่สุดเมื่อต้องการย้าย URL ถาวร Browser ยังจะ Cache Redirect นี้ไว้ด้วย ทำให้การ Request ครั้งต่อไปจาก Browser เดิมเร็วขึ้น
302 Temporary Redirect
บอกว่า URL นี้เปลี่ยนชั่วคราว Google จะไม่โอน Link Equity และจะยังจดจำ URL เก่าไว้เป็น Canonical URL หลัก เหมาะสำหรับ: ปิดปรับปรุงชั่วคราว, A/B Testing, หรือ Redirect ระหว่างรอการยืนยัน ถ้าใช้ 302 แทน 301 สำหรับการย้ายถาวร อาจทำให้เสีย SEO Ranking ในระยะยาวเพราะ Google ไม่โอนอำนาจ
307 Temporary Redirect
คล้ายกับ 302 แต่บังคับให้ Browser ใช้ HTTP Method เดิม (เช่น POST ยังคง POST ไม่เปลี่ยนเป็น GET) เหมาะสำหรับ API Endpoints หรือ Form Submission ที่ต้องการรักษา Method เดิมไว้ในการ Redirect
308 Permanent Redirect
คล้ายกับ 301 แต่บังคับให้ Browser ใช้ HTTP Method เดิม เหมาะสำหรับ REST API ที่ต้องการ Permanent Redirect โดยไม่เปลี่ยน Method ในทางปฏิบัติ สำหรับเว็บทั่วไปที่ใช้ GET Request ส่วนใหญ่ การใช้ 301 และ 302 ก็เพียงพอ 307 และ 308 เป็นตัวเลือกสำหรับ Developer ที่สร้าง API เฉพาะ
การตั้งค่า Redirect ใน DirectAdmin และ .htaccess
นอกจากการใช้ UI ของ DirectAdmin แล้ว ยังสามารถตั้งค่า Redirect ได้โดยตรงผ่าน .htaccess ซึ่งให้ความยืดหยุ่นสูงกว่า โดยเฉพาะเมื่อต้องการสร้าง Redirect แบบซับซ้อนหรือ Pattern-based
Redirect Directive แบบง่าย
วิธีที่ง่ายที่สุดคือใช้ Directive Redirect ใน .htaccess โดยตรง:
Redirect 301 /old-page /new-page— Redirect แบบ PermanentRedirect 302 /temp-page /other-page— Redirect แบบ TemporaryRedirect permanent /old /new— ใช้คำว่า permanent แทน status code 301 ได้
Directive นี้ทำงานตรงไปตรงมาและไม่ต้องเปิด mod_rewrite แค่ mod_alias เท่านั้น เหมาะสำหรับ Redirect ทีละ URL
RewriteRule สำหรับ Redirect แบบ Pattern
เมื่อต้องการ Redirect หลาย URL ด้วยกฎเดียว หรือต้องการส่ง Parameter ตามไปด้วย ให้ใช้ mod_rewrite:
RewriteEngine On— เปิดใช้ mod_rewriteRewriteRule ^old-page$ /new-page [R=301,L]— Redirect /old-page → /new-pageRewriteRule ^products/(.*)$ /shop/$1 [R=301,L]— Redirect พร้อม Capture Group ส่ง Path ตามไปด้วย- Flag
[R=301,L]= Redirect 301 + หยุด Rule Chain ทันที
DirectAdmin จะสร้าง RewriteRule เหล่านี้ใน .htaccess อัตโนมัติเมื่อใช้ Site Redirects UI แต่การเขียนเองโดยตรงใน .htaccess ช่วยให้ควบคุมได้ละเอียดกว่า เช่น เพิ่มเงื่อนไขพิเศษด้วย RewriteCond
การตั้งค่า Wildcard Redirect ทั้ง Domain
Wildcard Redirect ใช้เมื่อต้องการย้ายทุก URL จาก Domain เก่าไปยัง Domain ใหม่ โดยยังรักษา Path ให้เหมือนเดิม เช่น old-domain.com/blog/post-1 จะ Redirect ไปยัง new-domain.com/blog/post-1 โดยอัตโนมัติ ไม่ใช่แค่ Homepage
ขั้นตอนการตั้งค่า Wildcard Redirect
วิธีที่นิยมคือเพิ่ม RewriteRule ใน .htaccess ของ Domain เก่า โดย Capture ทุก Path และส่งต่อไปยัง Domain ใหม่:
- เปิด File Manager ใน DirectAdmin แล้วแก้ไขไฟล์
.htaccessที่ root ของ Domain เก่า - เพิ่ม:
RewriteEngine On - เพิ่ม:
RewriteCond %{HTTP_HOST} ^old-domain\.com$ [NC] - เพิ่ม:
RewriteRule ^(.*)$ https://new-domain.com/$1 [R=301,L] - Flag
%1หรือ$1= ส่ง Path เดิมไปด้วย ทำให้ URL ตรงกันทุก Path
ข้อสำคัญ: Domain เก่าต้องยัง Active อยู่และชี้มายัง Hosting เดิม มิฉะนั้น .htaccess จะไม่ถูก Execute ลูกค้าที่ต้องการย้าย Domain ควรเก็บ Domain เก่าไว้ Renew อย่างน้อย 1–2 ปีหลังจากย้าย เพื่อให้ Redirect ทำงานต่อเนื่องและ SEO สามารถ Transfer ได้อย่างสมบูรณ์
การแก้ปัญหา Redirect Loop
Redirect Loop เกิดขึ้นเมื่อ URL A Redirect ไปยัง URL B แล้ว URL B Redirect กลับมายัง URL A (หรือมากกว่านั้นในรูปแบบวนซ้ำ) Browser จะแสดง Error ว่า "Too many redirects" หรือ "ERR_TOO_MANY_REDIRECTS" ซึ่งทำให้ผู้ใช้ไม่สามารถเข้าถึงเว็บได้เลย
ตรวจสอบ Redirect Chain ด้วย curl
วิธีที่เร็วที่สุดในการ Debug Redirect Loop คือใช้คำสั่ง curl -IL บน Terminal:
curl -IL https://example.com/old-page— แสดง Header ทุก Step ของ Redirect Chain- Flag
-I= ส่งเฉพาะ HEAD Request (ไม่โหลด Body) - Flag
-L= Follow Redirect อัตโนมัติ - ดู Status Code แต่ละ Step: 301/302 = Redirect, 200 = ถึงปลายทางแล้ว
- ถ้า curl วนซ้ำหรือ Error แสดงว่ามี Loop อยู่จริง
สาเหตุที่พบบ่อยและวิธีแก้ไข
- Redirect ชี้กลับมาตัวเอง — กฎ Redirect ใน .htaccess มี Source และ Destination เป็น URL เดียวกัน ตรวจ .htaccess ทีละบรรทัด
- HTTP → HTTPS Loop — มี Redirect Rule สำหรับ HTTPS อยู่แล้วใน Server Config แต่ .htaccess เพิ่ม Rule ซ้ำ ให้ลบ Rule ที่ซ้ำออก
- Domain เก่า Redirect ไปโดเมนใหม่ แต่โดเมนใหม่ Redirect กลับ — ตรวจ .htaccess ของ Domain ใหม่ว่ามี Rule ที่ Redirect กลับไปยัง Domain เก่าหรือไม่
- Plugin หรือ CMS สร้าง Redirect ซ้อนกัน — เช่น WordPress Redirect Plugin ขัดกับ .htaccess Rule ให้ปิด Plugin ชั่วคราวแล้วทดสอบ
หลังแก้ไขแล้ว ควรล้าง Browser Cache และทดสอบด้วย curl -IL อีกครั้ง หรือใช้เครื่องมือออนไลน์อย่าง redirect-checker.org เพื่อยืนยันว่า Chain สุดท้ายได้ HTTP 200 โดยไม่มีการวนซ้ำ
Hosting พร้อมจัดการเว็บไซต์ครบครัน
AsiaGB Hosting มาพร้อม DirectAdmin, SSL ฟรี, Backup อัตโนมัติ และทีม Support ภาษาไทย เริ่มต้น 500 บาท/ปี
ดูแพ็กเกจ Hosting