# คู่มือ Apache HTTP Server บน DirectAdmin Hosting และการตั้งค่า htaccess สำหรับ WordPress และ PHP

> แนวทางใช้ Apache บน DirectAdmin ครบวงจร ตั้งค่า htaccess รีไรต์ บีบอัด แคช เพิ่ม Security Headers บังคับ HTTPS ปิด Directory Listing กัน Hotlink ปรับ PHP ผ่าน user ini พร้อมทิปแก้ปัญหา WordPress และ PHP หน้างานจริง

Full URL: https://www.topvery.com/blog/article.คู่มือApacheHTTPServerบนDirectAdminHostingและการตั้งค่าhtaccessสำหรับWordPressและPHP.BLO251018124915.ข่าวสาร
Base URL: https://www.topvery.com/

---

## ภาพรวม Apache HTTP Server บนโฮสติ้ง DirectAdmin

[Apache HTTP Server](https://www.topvery.com/apache) เป็นเว็บเซิร์ฟเวอร์ยอดนิยมที่ใช้งานแพร่หลายในโฮสติ้งร่วม โดย [DirectAdmin](https://www.topvery.com/directadmin) ช่วยให้การจัดการโดเมน อีเมล และโฟลเดอร์เว็บไซต์ทำได้ง่าย ร่วมกับไฟล์ [.htaccess](https://www.topvery.com/htaccess) เพื่อควบคุมรีไรต์ กำหนดเฮดเดอร์ และเพิ่มมาตรการความปลอดภัยในระดับไดเรกทอรี

## โครงสร้างไฟล์และจุดสำคัญ

* **Document Root** : โฟลเดอร์ public_html (หรือโฟลเดอร์ย่อยของโดเมน/ซับโดเมน) บน [File Manager](https://www.topvery.com/file-manager)
* **.htaccess** : ไฟล์กำหนดพฤติกรรม Apache รายไดเรกทอรี เช่น รีไรต์ ยูอาร์แอล ปิดไดเรกทอรีลิสต์ เพิ่ม Security Headers
* **error_log / access_log** : ที่ใช้ตรวจสอบข้อผิดพลาดและทราฟฟิก (ดูได้จาก [Log Viewer](https://www.topvery.com/log-viewer) ของโฮสต์)
## ตั้งค่า URL Rewrite พื้นฐาน

เปิดใช้โมดูลรีไรต์สำหรับเว็บแอปและ [WordPress](https://www.topvery.com/wordpress) (โครงสร้างลิงก์ถาวร)

# เปิดใช้ Rewrite Engine
RewriteEngine On

# บังคับ www → non-www (ตัวอย่าง)
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]

# WordPress Permalinks
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
ต้องการทดสอบรีไรต์ แนะนำสร้างเพจทดสอบและตรวจด้วย [HTTP Check](https://www.topvery.com/http-check) และ [Redirect 301 ตรวจสอบ](https://www.topvery.com/redirect-301)

## เพิ่มความเร็วด้วย Gzip Deflate และ Cache Headers

บีบอัดทราฟฟิกและกำหนดอายุแคชสำหรับไฟล์สแตติก เพื่อลดขนาดที่ส่งระหว่างเซิร์ฟเวอร์กับเบราว์เซอร์

# เปิดการบีบอัด (mod_deflate)
AddOutputFilterByType DEFLATE text/html text/plain text/css application/javascript application/json image/svg+xml

# Caching Header
<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresByType text/css "access plus 30 days"
  ExpiresByType application/javascript "access plus 30 days"
  ExpiresByType image/png "access plus 30 days"
  ExpiresByType image/jpeg "access plus 30 days"
  ExpiresDefault "access plus 7 days"
</IfModule>

# ETag/Cache-Control
Header set Cache-Control "public, max-age=2592000"
ตรวจคะแนน Core Web Vitals เพิ่มเติมด้วย [PageSpeed](https://www.topvery.com/pagespeed) และแนะนำเปิดใช้ [OPcache](https://www.topvery.com/opcache) ในระดับ PHP

## เสริมความปลอดภัยด้วย Security Headers

ลดความเสี่ยง XSS, Clickjacking และเนื้อหาไม่ปลอดภัย

# ป้องกัน Clickjacking
Header always set X-Frame-Options "SAMEORIGIN"

# ป้องกัน XSS บางส่วน
Header set X-XSS-Protection "1; mode=block"

# ปิดการเดา MIME Type
Header set X-Content-Type-Options "nosniff"

# Content Security Policy (ปรับให้เหมาะกับเว็บ)
Header set Content-Security-Policy "default-src 'self'; img-src 'self' data: https:; script-src 'self' https: 'unsafe-inline'; style-src 'self' https: 'unsafe-inline'"

# HSTS (ใช้เมื่อเว็บบังคับ HTTPS แล้ว)
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
อย่าลืมบังคับ HTTPS และติดตั้ง [SSL](https://www.topvery.com/ssl) ให้ครบทั้งโดเมนหลักและซับโดเมน

## ปิด Directory Listing และกัน Hotlink

# ปิดการแสดงไดเรกทอรี
Options -Indexes

# กัน Hotlink รูปภาพ (อนุญาตเฉพาะโดเมนตัวเอง)
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?example\.com/ [NC]
RewriteRule \.(jpg|jpeg|png|gif|webp)$ - [F,NC]
ทดสอบด้วย [Security Scan](https://www.topvery.com/security-scan) และตรวจลิงก์ภายนอกที่ดึงรูปจากเว็บคุณ

## ตั้งค่า PHP ที่ระดับไดเรกทอรี

บนโฮสต์ที่รัน [PHP-FPM](https://www.topvery.com/php-fpm) แนะนำใช้ .user.ini แทน .htaccess สำหรับ PHP directives

; .user.ini
memory_limit=256M
upload_max_filesize=128M
post_max_size=128M
max_execution_time=300
สอบทานเวอร์ชัน PHP และสวิตช์ผ่าน [Select PHP Version](https://www.topvery.com/select-php-version) ใน DirectAdmin

## แนวทางทำงานจริงกับ WordPress

* **Permalinks** : เปิด [Permalinks](https://www.topvery.com/permalink) และตรวจ .htaccess ไม่ชนกับปลั๊กอินรีไรต์
* **Cache Plugin** : ใช้ร่วมกับ [Page Cache](https://www.topvery.com/page-cache) และตั้ง Cache-Control ให้สอดคล้อง
* **Security** : ปิด [XML-RPC](https://www.topvery.com/xmlrpc) หากไม่ใช้ และจำกัด [wp-login](https://www.topvery.com/wp-login) ด้วย rate limit / reCAPTCHA
* **Media** : ใช้ [CDN](https://www.topvery.com/cdn) สำหรับรูป/ไฟล์ใหญ่เพื่อลดภาระ Apache# ตัวอย่างปิด xmlrpc
<Files xmlrpc.php>
  Order allow,deny
  Deny from all
</Files>

## ดีบักและแก้ปัญหาที่พบบ่อย

* **500 Internal Server Error** : เช็กไวยากรณ์ .htaccess, ปิดกฎบางส่วนทีละบรรทัด, ตรวจ [error_log](https://www.topvery.com/error-log)
* **404 หลังเปิด Permalinks** : ตรวจ RewriteEngine, RewriteBase, และไฟล์จริง/โฟลเดอร์
* **โหลดช้า** : เปิดบีบอัด, ตั้งแคช, เปิด [OPcache](https://www.topvery.com/opcache), ใช้ [Object Cache](https://www.topvery.com/object-cache)
* **คอนฟลิกต์ปลั๊กอิน** : ปิดปลั๊กอินต้องสงสัย, เปิดโหมดดีบัก [WP_DEBUG](https://www.topvery.com/wp-debug), ตรวจฮุกที่เขียนทับ .htaccess
## เช็กลิสต์ก่อนขึ้นระบบจริง

* บังคับ HTTPS และเปิด HSTS
* ตั้งแคชเฮดเดอร์และบีบอัดไฟล์สแตติก
* ปิด Directory Listing และกัน Hotlink
* เพิ่ม Security Headers ขั้นพื้นฐาน
* เปิด OPcache และตรวจเวอร์ชัน PHP
* ทดสอบ PageSpeed และแก้ LCP/CLS/INP ตามรายงาน