
สารบัญ
.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
- Login เข้า DirectAdmin → เลือก File Manager
- ไปที่โฟลเดอร์
public_html/ - คลิก "New File" → ตั้งชื่อว่า
.htaccess(มีจุดนำหน้า) - คลิก "Edit" แล้ววางคำสั่งที่ต้องการ → Save
📂 ถ้าไม่เห็นไฟล์ .htaccess ที่มีอยู่แล้ว ให้กด "Show Hidden Files" (มุมบนขวาของ File Manager)
วิธีที่ 2 — ผ่าน FTP
- เปิด FTP client (เช่น FileZilla) → เชื่อมต่อด้วยข้อมูล FTP จาก DirectAdmin
- ไปที่โฟลเดอร์
public_html/ - สร้างไฟล์ชื่อ
.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 Redirect | Google ให้ 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 ช้า
คำถามที่พบบ่อย
public_html/ (root directory ของเว็บไซต์) เปิด File Manager ใน DirectAdmin แล้วกด "Show Hidden Files" เพื่อมองเห็นไฟล์สรุป — เริ่มใช้ .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