DevToolPal
ไทย

สร้างไฟล์ .htaccess

สร้างไฟล์ .htaccess ของ Apache: บังคับ HTTPS, redirect www, redirect 301, หน้า 404, gzip, แคช และเฮดเดอร์ความปลอดภัย

ทำงานในเครื่อง ไม่มีการอัปโหลด

ตัวเลือก

.htaccess

0 ตัวอักษร · 0 B

เครื่องมือนี้ทำอะไรได้

ตัวสร้าง .htaccess เขียนไฟล์คอนฟิก Apache สำหรับงานที่พบบ่อยที่สุด ได้แก่ บังคับ HTTPS, เลือกระหว่าง www.example.com กับ example.com, redirect ถาวรแบบ 301, หน้า 404 แบบกำหนดเอง, การบีบอัด gzip, แคชในเบราว์เซอร์, เฮดเดอร์ความปลอดภัย, CORS, การป้องกัน hotlink รูปภาพ และ fallback สำหรับ single-page app

แต่ละฟีเจอร์เป็นสวิตช์ ไฟล์จะอัปเดตเมื่อคุณเปลี่ยนตัวเลือก มาพร้อมคอมเมนต์สั้น ๆ อธิบายทุกบล็อก และครอบกฎที่ขึ้นกับโมดูลด้วย <IfModule> เพื่อให้เว็บไซต์ยังทำงานได้เมื่อไม่มีโมดูลนั้น

วิธีใช้งาน

  1. ใส่ โดเมน ของคุณ (จำเป็นสำหรับกฎ www และ hotlink)
  2. เปิดฟีเจอร์ที่ต้องการ บังคับ HTTPS และ คำนำหน้า www จะถูกรวมเป็น redirect เดียว ผู้เข้าชมจึงไม่ถูกเด้งสองครั้ง
  3. เพิ่ม Redirect 301 เป็นคู่ old new คั่นด้วย ; เช่น /old-page /new-page; /blog https://blog.example.com
  4. คัดลอกผลลัพธ์หรือกด ดาวน์โหลด เพื่อบันทึกเป็น .htaccess
  5. อัปโหลดไปยัง document root ของเว็บไซต์ แล้วทดสอบ URL สักสองสามรายการ ควรทดสอบบนเซิร์ฟเวอร์ staging ก่อน

ตัวอย่าง

การบังคับ HTTPS และลบ www สำหรับ example.com จะได้:

<IfModule mod_rewrite.c>
RewriteEngine On

# Force HTTPS and remove www
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^example\.com$ [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [L,R=301]
</IfModule>

เคล็ดลับ

  • Redirect 301 ถูกแคชโดยเบราว์เซอร์ ระหว่างทดสอบให้ใช้หน้าต่างส่วนตัวหรือล้างแคช
  • เปิด HSTS (ส่วนหนึ่งของเฮดเดอร์ความปลอดภัยเมื่อบังคับ HTTPS) หลังจาก HTTPS ใช้งานได้บนทุกซับโดเมนแล้วเท่านั้น
  • ใช้ fallback สำหรับ single-page app กับแอป React, Vue หรือ Angular ที่ใช้ client-side routing

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

› ต้องวางไฟล์ .htaccess ไว้ที่ไหน?

วางไว้ใน document root ของเว็บไซต์ (โฟลเดอร์ที่มี index.html หรือ index.php) บนเซิร์ฟเวอร์ Apache กฎจะมีผลกับทุกโฟลเดอร์ที่อยู่ด้านล่างด้วย

› ใช้กับ Nginx ได้หรือไม่?

ไม่ได้ .htaccess ถูกอ่านโดย Apache และเซิร์ฟเวอร์ที่เข้ากันได้อย่าง LiteSpeed เท่านั้น Nginx ต้องเขียนกฎเดียวกันในคอนฟิกเซิร์ฟเวอร์ของตัวเอง

› ทำไมได้ error 500 หลังอัปโหลด?

มักเป็นเพราะโมดูลที่ไฟล์ใช้ไม่ได้เปิดไว้ แต่ละบล็อกถูกครอบด้วย <IfModule> แล้ว แต่กฎ mod_rewrite และ Options -Indexes ยังล้มเหลวได้เมื่อโฮสต์ไม่อนุญาตผ่าน AllowOverride ลองลบทีละส่วนเพื่อหาตัวต้นเหตุ

› เขียน redirect อย่างไร?

ใส่คู่ของ path เก่ากับ URL ใหม่ คั่นด้วยอัฒภาค เช่น /old /new; /blog https://blog.example.com แต่ละคู่จะกลายเป็น redirect ถาวรแบบ 301