ตั้งค่าไฟล์ .htaccess บน DirectAdmin Hosting

สารบัญ

  1. .htaccess คืออะไร
  2. ทำไมต้องใช้ .htaccess
  3. สร้างและแก้ไข .htaccess บน DirectAdmin
  4. .htaccess กับ URL Redirect
  5. Password Protection
  6. Custom Error Pages
  7. Block IP และ Access Control
  8. .htaccess กับ SEO
  9. ตั้งค่า Cache & Compression
  10. คำถามที่พบบ่อย

.htaccess คืออะไร

ไฟล์ .htaccess (อ่านว่า "ดอท เอชที แอคเซส" — ย่อจาก Hypertext Access) คือไฟล์ configuration ของ Apache HTTP Server ที่อยู่ในระดับ directory ช่วยให้คุณควบคุมพฤติกรรมของ web server ได้โดยไม่ต้องแก้ไขไฟล์ httpd.conf หลัก ซึ่งต้องใช้สิทธิ์ root

บน DirectAdmin Hosting ของ AsiaGB — Apache เปิด AllowOverride All ไว้แล้ว ทำให้ .htaccess ทำงานได้ทันที โดยไม่ต้องติดต่อ support เพิ่ม

💡 ชื่อไฟล์ขึ้นต้นด้วยจุด (dot) หมายความว่าเป็น "hidden file" บนระบบ Linux — อย่าลืมเปิดแสดงไฟล์ซ่อนใน File Manager ของ DirectAdmin

ทำไมต้องใช้ .htaccess

.htaccess ทำได้หลายอย่างที่ไม่สามารถทำผ่าน PHP หรือ HTML ได้ ตัวอย่างที่พบบ่อย:

งานใช้ .htaccess ทำทำไมต้องใช้ .htaccess
Redirect URL เก่า → ใหม่✅ RewriteRule / Redirectทำระดับ server ก่อน PHP ทำงาน
บังคับใช้ HTTPS✅ RewriteRule HTTPSปลอดภัย ไม่ต้องแก้โค้ด
ล็อก directory ด้วย password✅ AuthType Basicเร็วกว่าทำใน PHP
Custom Error Page (404, 500)✅ ErrorDocumentทุก URL ใช้หน้า error เดียวกัน
Block IP หรือ User-Agent✅ Deny fromบล็อกก่อน PHP รับ request
ตั้งค่า Cache-Control Header✅ Header setควบคุม browser cache

สร้างและแก้ไข .htaccess บน DirectAdmin

มี 2 วิธีหลักในการสร้างหรือแก้ไขไฟล์ .htaccess:

วิธีที่ 1 — ผ่าน File Manager ใน DirectAdmin

  1. Login เข้า DirectAdmin → เลือก File Manager
  2. ไปที่โฟลเดอร์ public_html/
  3. คลิก "New File" → ตั้งชื่อว่า .htaccess (มีจุดนำหน้า)
  4. คลิก "Edit" แล้ววางคำสั่งที่ต้องการ → Save

📂 ถ้าไม่เห็นไฟล์ .htaccess ที่มีอยู่แล้ว ให้กด "Show Hidden Files" (มุมบนขวาของ File Manager)

วิธีที่ 2 — ผ่าน FTP

  1. เปิด FTP client (เช่น FileZilla) → เชื่อมต่อด้วยข้อมูล FTP จาก DirectAdmin
  2. ไปที่โฟลเดอร์ public_html/
  3. สร้างไฟล์ชื่อ .htaccess บน local แล้ว upload ขึ้น server

⚠️ สำรองไฟล์ก่อนแก้ไขทุกครั้ง! .htaccess ที่มี syntax ผิดจะทำให้เว็บ Error 500 ทันที ควร download สำเนาไว้ก่อน

.htaccess กับ URL Redirect

การ redirect URL คือการใช้งาน .htaccess ที่พบบ่อยที่สุด โดยเฉพาะการเปลี่ยน URL เก่าไปใหม่, บังคับ HTTPS และตัด www ออก

บังคับ HTTPS (Redirect HTTP → HTTPS)

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Redirect หน้าเดี่ยว (301 Permanent)

Redirect 301 /old-page.html https://yourdomain.com/new-page.html

Redirect ทั้ง www → non-www

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]

Redirect 404 ทั้งหมด → หน้าหลัก

ErrorDocument 404 /404.html

🔎 301 vs 302: ใช้ 301 (Permanent) เมื่อย้าย URL ถาวร — Google จะส่ง PageRank ตาม ใช้ 302 (Temporary) เฉพาะเมื่อย้ายชั่วคราว

Password Protection — ล็อก Directory ด้วยรหัสผ่าน

ถ้าต้องการล็อกโฟลเดอร์บางโฟลเดอร์ (เช่น /admin, /staging) ให้ต้อง login ก่อนเข้าถึง:

ขั้นตอนที่ 1 — สร้างไฟล์ .htpasswd

สร้างไฟล์ .htpasswd นอก public_html เช่นที่ /home/username/.htpasswd โดยใช้เครื่องมือออนไลน์ htpasswd generator หรือสร้างผ่าน DirectAdmin Terminal:

htpasswd -c /home/username/.htpasswd myusername

ขั้นตอนที่ 2 — แก้ไข .htaccess ในโฟลเดอร์ที่ต้องการล็อก

AuthType Basic
AuthName "Protected Area"
AuthUserFile /home/username/.htpasswd
Require valid-user

Custom Error Pages — หน้า Error สวยงาม

แทนที่จะโชว์หน้า error เปล่าของ Apache ให้ผู้ใช้เห็น ควรสร้างหน้า error สวยๆ ของตัวเอง:

ErrorDocument 404 /404.html
ErrorDocument 403 /403.html
ErrorDocument 500 /500.html

สร้างไฟล์ 404.html ไว้ที่ root ของเว็บไซต์ (public_html/404.html) ให้มีลิงก์กลับหน้าหลักและ search form เพื่อลด bounce rate

Block IP และ Access Control

ถ้าเว็บถูก spam หรือโจมตีจาก IP เฉพาะ สามารถบล็อกได้ผ่าน .htaccess:

บล็อก IP เฉพาะ

Order allow,deny
Allow from all
Deny from 123.456.789.0
Deny from 192.168.1.0/24

บล็อก User-Agent (bot/crawler ที่ไม่ต้องการ)

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (BadBot|EvilScraper|SpamBot) [NC]
RewriteRule .* - [F,L]

ห้ามเข้าถึงไฟล์บางประเภทโดยตรง

<FilesMatch "\.(env|log|sql|bak)$">
  Order allow,deny
  Deny from all
</FilesMatch>

🔒 ควรบล็อกการเข้าถึงไฟล์ .env, .log, .sql โดยตรงเสมอ เพราะอาจมีข้อมูล database password หลุดออกไปได้

.htaccess กับ SEO

.htaccess มีผลต่อ SEO โดยตรงใน 4 ด้านหลัก:

การตั้งค่าผลต่อ SEO
301 Redirectส่ง link equity ไปยัง URL ใหม่ ป้องกัน duplicate content
HTTPS RedirectGoogle ให้ preference กับ HTTPS; ความเชื่อถือสูงขึ้น
Custom 404 Pageลด bounce rate; Google เห็น proper 404 response code
Cache Headersเว็บโหลดเร็ว = Core Web Vitals ดีขึ้น = อันดับดีขึ้น

ตัวอย่าง: บังคับ Canonical URL (www → non-www + HTTPS)

RewriteEngine On
# Redirect www to non-www
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
# Redirect HTTP to HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

ตั้งค่า Cache & Compression เพื่อความเร็ว

เว็บที่โหลดเร็วส่งผลดีต่อทั้ง UX และ SEO การตั้งค่า browser cache และ compression ผ่าน .htaccess ช่วยได้มาก:

Browser Caching

<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresByType image/jpg "access plus 1 year"
  ExpiresByType image/jpeg "access plus 1 year"
  ExpiresByType image/webp "access plus 1 year"
  ExpiresByType image/png "access plus 1 year"
  ExpiresByType text/css "access plus 1 month"
  ExpiresByType application/javascript "access plus 1 month"
  ExpiresByType text/html "access plus 1 hour"
</IfModule>

Gzip Compression

<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE text/html text/plain text/css
  AddOutputFilterByType DEFLATE application/javascript application/json
  AddOutputFilterByType DEFLATE image/svg+xml
</IfModule>

⚡ การเปิด Gzip สามารถลดขนาดไฟล์ HTML/CSS/JS ได้ถึง 60–70% ทำให้เว็บโหลดเร็วขึ้นอย่างเห็นได้ชัดโดยเฉพาะบน connection ช้า

คำถามที่พบบ่อย

Q: .htaccess คืออะไร?
A: .htaccess คือไฟล์ config ของ Apache Web Server ระดับ directory ที่ใช้ควบคุมพฤติกรรมเว็บไซต์ เช่น Redirect, Password Protection, Block IP, Custom Error Page โดยไม่ต้องแก้ไฟล์ config หลักของ server
Q: ไฟล์ .htaccess อยู่ที่ไหนบน DirectAdmin?
A: อยู่ใน public_html/ (root directory ของเว็บไซต์) เปิด File Manager ใน DirectAdmin แล้วกด "Show Hidden Files" เพื่อมองเห็นไฟล์
Q: แก้ .htaccess ผิดทำให้เว็บ 500 Error ต้องทำอย่างไร?
A: เข้า File Manager ใน DirectAdmin แล้วแก้หรือลบบรรทัดที่เพิ่มล่าสุดออก หรือ rename .htaccess เป็น .htaccess.bak ชั่วคราวเพื่อให้เว็บกลับมา แล้วค่อยแก้ syntax ก่อน rename กลับ
Q: .htaccess ต่างจาก php.ini อย่างไร?
A: .htaccess ควบคุม Apache Web Server (URL rewrite, access control, cache headers) ส่วน php.ini ควบคุม PHP engine (memory_limit, upload_max_filesize, max_execution_time) ทั้งสองทำงานคนละระดับและใช้ร่วมกันได้
Q: .htaccess ส่งผลต่อ SEO อย่างไร?
A: .htaccess มีผล SEO ผ่าน 301 Redirect (ส่ง PageRank ไป URL ใหม่), HTTPS Redirect (Google ให้ preference กับ HTTPS), Custom 404 Page (ลด bounce rate) และ Cache Headers (เว็บเร็วขึ้น = Core Web Vitals ดี)
Q: ต้องเปิด mod_rewrite บน DirectAdmin Hosting ไหม?
A: AsiaGB Hosting เปิด mod_rewrite ไว้แล้วโดยค่าเริ่มต้น ใช้ RewriteEngine On ใน .htaccess ได้ทันที ไม่ต้องติดต่อ support เพื่อ enable เพิ่ม

สรุป — เริ่มใช้ .htaccess บน DirectAdmin ได้เลย

.htaccess เป็นเครื่องมือทรงพลังที่ทุกเว็บไซต์บน Hosting ควรรู้จัก ไม่ว่าจะเป็นการ Redirect URL เก่าหลังย้าย domain, บังคับ HTTPS, ปกป้องโฟลเดอร์ sensitive ด้วย password, หรือเพิ่มความเร็วเว็บด้วย cache headers

บน AsiaGB DirectAdmin Hosting — mod_rewrite และ mod_expires เปิดพร้อมใช้งาน ทำให้คำสั่ง .htaccess ทำงานได้ทันทีโดยไม่ต้องแก้ไขอะไรเพิ่ม

หากต้องการ Hosting ที่รองรับ .htaccess เต็มรูปแบบพร้อม DirectAdmin ที่ใช้งานง่าย AsiaGB มีแพ็กเกจเริ่มต้นราคา 500 บาท/เดือน พร้อม SSD storage และ Uptime 99%

เริ่มต้น Hosting ที่รองรับ .htaccess เต็มรูปแบบ

DirectAdmin Hosting พร้อม mod_rewrite · SSD Storage · Uptime 99% · Backup 2 ครั้ง/เดือน

ดูแพ็กเกจ Hosting