T

Text Machine

เครื่องมือข้อความทรงพลัง ในเบราว์เซอร์ของคุณ

เครื่องมือสร้างไฟล์ .htaccess

สร้างกฎ .htaccess ทั่วไปสำหรับเว็บไซต์ของคุณ เลือกตัวเลือกที่คุณต้องการและคัดลอกโค้ดที่สร้างขึ้น

ตัวเลือก

Performance

Security

โค้ด .htaccess ที่สร้างขึ้น
Important Notes

• The .htaccess file should be placed in the root directory of your website
• Make sure mod_rewrite is enabled on your Apache server
• Always backup your existing .htaccess file before replacing it
• Some hosting providers may restrict certain .htaccess directives

วิธีใช้ เครื่องมือสร้างไฟล์ .htaccess

  1. 1

    ป้อนโดเมนของคุณ

    พิมพ์ชื่อโดเมนของคุณ เช่น example.com ลงในช่อง "การตั้งค่าโดเมน"

  2. 2

    เลือกกฎ

    ทำเครื่องหมายตัวเลือกที่ต้องการ เช่น บังคับ HTTPS, บังคับหรือลบ www, การบีบอัด GZIP, การป้องกัน hotlink หรือหน้าแสดงข้อผิดพลาดแบบกำหนดเอง

  3. 3

    เพิ่ม redirect

    สำหรับการ redirect URL ให้ป้อนพาธเดิมและพาธใหม่ แล้วเลือก redirect แบบถาวร 301 หรือชั่วคราว 302

  4. 4

    คัดลอกหรือดาวน์โหลด

    ใช้ "คัดลอกไปยังคลิปบอร์ด" หรือ "ดาวน์โหลด .htaccess" แล้วอัปโหลดไฟล์ไปยังไดเรกทอรีรากของเว็บไซต์ของคุณ

เชี่ยวชาญไฟล์ .htaccess ของ Apache

ไฟล์ .htaccess ทำอะไรกันแน่

ไฟล์ .htaccess คือไฟล์การกำหนดค่าแบบต่อไดเรกทอรีสำหรับเว็บเซิร์ฟเวอร์ Apache เมื่อ Apache ถูกสร้างมาโดยเปิดใช้งาน AllowOverride ไว้ มันจะอ่านไฟล์ .htaccess ในไดเรกทอรีที่กำลังให้บริการอยู่ รวมถึงไฟล์ในทุกไดเรกทอรีแม่ แล้วนำคำสั่ง (directive) ในไฟล์เหล่านั้นมาใช้กับคำขอนั้น สิ่งนี้ทำให้คุณเปลี่ยนพฤติกรรมของเซิร์ฟเวอร์ การ redirect การแคช การควบคุมการเข้าถึง และอื่น ๆ ได้โดยไม่ต้องแตะการกำหนดค่าหลักของเซิร์ฟเวอร์หรือรีสตาร์ท Apache การเปลี่ยนแปลงจะมีผลทันทีในคำขอถัดไป ซึ่งเป็นสิ่งที่ทำให้ .htaccess สะดวกมากบนโฮสติงแบบแชร์ที่คุณไม่มีสิทธิ์เข้าถึงการกำหนดค่าหลัก

ชื่อไฟล์คือ .htaccess ตามตัวอักษรเลย โดยมีจุดนำหน้าและไม่มีนามสกุล และบนระบบแบบ Unix จุดนั้นทำให้มันเป็นไฟล์ที่ซ่อนอยู่ มันต้องอยู่ในไดเรกทอรีที่คุณต้องการเปลี่ยนพฤติกรรม ซึ่งโดยทั่วไปที่สุดคือ document root ของเว็บไซต์คุณ กฎที่อยู่ใน root จะมีผลกับทั้งเว็บไซต์ เว้นแต่ไฟล์ .htaccess ที่อยู่ลึกกว่าจะมาแทนที่

เฉพาะ Apache เท่านั้น: Nginx และตัวอื่นไม่สนใจมัน

นี่คือสิ่งแรกที่ต้องตรวจสอบก่อนที่คุณจะเขียนกฎสักข้อ .htaccess เป็นคุณสมบัติของ Apache ส่วน Nginx ซึ่งเป็นเว็บเซิร์ฟเวอร์อีกตัวที่ครองตลาดนั้นไม่อ่านไฟล์ .htaccess เลยและจะไม่มีวันอ่าน ด้วยการออกแบบเช่นนั้น หากเว็บไซต์ของคุณทำงานบน Nginx การวางไฟล์ .htaccess ลงใน root จะไม่ทำอะไรเลย และต้องแสดง redirect, rewrite และส่วนหัวที่เทียบเท่ากันไว้ใน server block ของ Nginx แทน LiteSpeed และเซิร์ฟเวอร์ที่เข้ากันได้กับ Apache ไม่กี่ตัวเข้าใจไวยากรณ์ของ .htaccess ได้ แต่ Nginx, Caddy และ IIS ต่างก็ใช้รูปแบบการกำหนดค่าของตัวเอง

หากคุณไม่แน่ใจว่ามีเซิร์ฟเวอร์ตัวใด ให้ตรวจสอบ Server response header ซึ่ง HTTP Header Viewer ของเว็บไซต์นี้แสดงให้คุณดูได้ การเห็น Apache ที่นั่นยืนยันว่า .htaccess จะทำงานได้ ส่วนการเห็น nginx หมายความว่าคุณกำลังมาผิดทางกับไฟล์นี้แล้ว

การ redirect และการทำให้เป็นรูปแบบมาตรฐานด้วย mod_rewrite

งานที่พบบ่อยที่สุดของ .htaccess คือการ redirect URL ซึ่งมันทำผ่านโมดูล mod_rewrite ที่หุ้มอยู่ในบล็อก RewriteEngine On การย้ายแบบถาวรอย่างง่ายใช้ Redirect 301 จากเส้นทางเก่าไปยังเส้นทางใหม่ ในขณะที่ RewriteRule จัดการการ redirect ที่อิงรูปแบบด้วยนิพจน์ปกติ (regular expression) งานการทำให้เป็นรูปแบบมาตรฐานสองอย่างที่แทบทุกเว็บไซต์ต้องการคือการบังคับให้ใช้ชื่อโฮสต์เดียว (จะบังคับ www เสมอหรือบังคับ non-www เสมอก็ได้) และการบังคับ HTTPS ซึ่งทั้งคู่ทำได้ด้วย RewriteCond ที่ทดสอบคำขอที่เข้ามา ตามด้วย RewriteRule ที่ส่ง 301 ไปยังรูปแบบที่เป็นมาตรฐาน

จงใช้ 301 (ถาวร) เสมอสำหรับการย้ายที่คุณตั้งใจจะคงไว้ เพราะ 301 ส่งต่อค่า link equity ไปยังปลายทางและบอกให้เครื่องมือค้นหาอัปเดตดัชนีของตน รายละเอียดเล็กน้อยแต่สำคัญคือการเลี่ยงห่วงโซ่การ redirect คือส่ง http://example.com ตรงไปยัง https://www.example.com ในกระโดดเดียว แทนที่จะเด้งผ่าน https://example.com ก่อน การกระโดดที่เกินมาแต่ละครั้งเพิ่มความหน่วงและเจือจางสัญญาณอันดับลงเล็กน้อย ซึ่ง Redirect Chain Checker ของเว็บไซต์นี้ช่วยคุณตรวจจับได้

ประสิทธิภาพ: การบีบอัด การแคช และต้นทุนของ AllowOverride

คุณสมบัติของ .htaccess สองอย่างให้ผลด้านประสิทธิภาพในทันที การบีบอัด GZIP ที่กำหนดค่าผ่าน mod_deflate ย่อขนาดคำตอบที่อิงข้อความอย่าง HTML, CSS และ JavaScript ก่อนที่จะถูกส่งออกไป โดยมักลดขนาดการส่งลงได้ 60 ถึง 80 เปอร์เซ็นต์ ส่วนการแคชของเบราว์เซอร์ที่ตั้งค่าด้วยส่วนหัว Cache-Control และ Expires ผ่าน mod_expires หรือ mod_headers จะบอกให้เบราว์เซอร์นำสินทรัพย์แบบสแตติกอย่างรูปภาพและฟอนต์กลับมาใช้ซ้ำ แทนที่จะดาวน์โหลดใหม่ทุกครั้งที่เข้าชม เมื่อรวมกันแล้ว สองสิ่งนี้คือการปรับปรุงความเร็วที่ให้ผลกระทบสูงที่สุดและใช้ความพยายามต่ำที่สุดเท่าที่มีอยู่

อย่างไรก็ตาม ตัว .htaccess เองก็มีต้นทุนที่ซ่อนอยู่ เนื่องจาก Apache ต้องตรวจหาไฟล์ .htaccess ในทุกไดเรกทอรีตลอดเส้นทางของทุกคำขอ การเปิดใช้งาน AllowOverride จึงเพิ่มการค้นหาในระบบไฟล์ให้กับแต่ละคำขอ บนเว็บไซต์ที่มีปริมาณการเข้าชมสูงที่คุณควบคุมเอง การย้ายคำสั่งเหล่านี้ไปไว้ในการกำหนดค่าหลักของเซิร์ฟเวอร์และตั้งค่า AllowOverride None จะเร็วกว่าอย่างวัดผลได้ บนโฮสติงแบบแชร์ คุณมักไม่มีทางเลือก และความสะดวกก็คุ้มค่ากว่าภาระที่เพิ่มขึ้น แต่ก็ควรรู้ไว้ว่าทำไม .htaccess จึงไม่ถูกแนะนำให้ใช้กับเซิร์ฟเวอร์ที่ประสิทธิภาพเป็นเรื่องสำคัญยิ่ง

ความปลอดภัย หน้าแสดงข้อผิดพลาด และการควบคุมการเข้าถึง

นอกเหนือจากการ redirect และประสิทธิภาพแล้ว .htaccess ยังถูกใช้อย่างแพร่หลายเพื่อเสริมความแข็งแกร่งและขัดเกลาเว็บไซต์ หน้าแสดงข้อผิดพลาดที่กำหนดเอง ซึ่งตั้งค่าด้วยคำสั่ง ErrorDocument จะแทนที่หน้าจอข้อผิดพลาดเริ่มต้นของ Apache อันแห้งแล้งด้วยหน้าที่มีตราสินค้าสำหรับคำตอบ 404 และ 500 ซึ่งดีกว่าทั้งต่อผู้ใช้และต่อความปลอดภัย การป้องกัน hotlink ใช้ RewriteCond กับส่วนหัว Referer เพื่อหยุดไม่ให้เว็บไซต์อื่นฝังรูปภาพของคุณและกินแบนด์วิดท์ของคุณ คุณยังส่งส่วนหัวด้านความปลอดภัยอย่าง X-Frame-Options, Content-Security-Policy และ Strict-Transport-Security ผ่านคำสั่ง Header ได้อีกด้วย

สำหรับการควบคุมการเข้าถึง .htaccess สามารถจำกัดไดเรกทอรีตาม IP address หรือกำหนดให้ต้องใช้รหัสผ่านผ่าน .htpasswd ได้ และมันยังบล็อกการสแกนแจกแจงชื่อผู้เขียนที่คอยตรวจหาชื่อผู้ใช้บนระบบจัดการเนื้อหาได้ การควบคุมเหล่านี้มีประโยชน์อย่างแท้จริง แต่จงจำไว้ว่ามันทำงานก็ต่อเมื่อ Apache ให้บริการคำขอผ่านเส้นทางปกติเท่านั้น จงใช้มันร่วมกับความปลอดภัยในระดับแอปพลิเคชันที่เหมาะสม แทนที่จะพึ่งพา .htaccess เพียงอย่างเดียว

ไวยากรณ์ไม่ยอมให้พลาด: ทดสอบก่อนที่จะไว้ใจ

ความเสี่ยงที่ใหญ่ที่สุดเพียงข้อเดียวของ .htaccess คือข้อผิดพลาดด้านไวยากรณ์มักไม่ล้มเหลวอย่างเงียบ ๆ แต่กลับจุดชนวนให้เกิด 500 Internal Server Error สำหรับทุกหน้าที่อยู่ใต้ไดเรกทอรีนั้น ทำให้ทั้งเว็บไซต์ออฟไลน์จนกว่าจะแก้ไฟล์ได้ ไม่มีขั้นตอนการคอมไพล์และไม่มีการตรวจสอบความถูกต้องก่อนนำไปใช้ ดังนั้นการพิมพ์ผิด โมดูลที่ขาดหายไป หรือคำสั่งที่โฮสต์ของคุณปิดใช้งานไว้ ก็สามารถทำให้ทุกอย่างพังได้ในทันที คำสั่งของ Apache ยังไวต่อลำดับด้วย กฎ rewrite ถูกประเมินจากบนลงล่าง และกฎกว้าง ๆ ที่วางไว้ก่อนกฎที่เฉพาะเจาะจงอาจกลืนคำขอที่กฎเฉพาะตั้งใจจะดักจับไว้

ขั้นตอนการทำงานที่ปลอดภัยคือสำรองไฟล์ .htaccess ที่มีอยู่ไว้เสมอก่อนเปลี่ยนแปลงมัน นำการเปลี่ยนแปลงไปใช้ในช่วงที่มีปริมาณการเข้าชมต่ำ และโหลดเว็บไซต์ทันทีหลังจากนั้นเพื่อยืนยันว่ามันยังตอบสนองอยู่ หากคุณเห็นข้อผิดพลาด 500 ให้กู้คืนไฟล์สำรองก่อนแล้วค่อยแก้จุดบกพร่องทีหลัง เมื่อคำสั่งใดขึ้นอยู่กับโมดูลอย่าง mod_rewrite หรือ mod_deflate จงยืนยันว่าโฮสต์ของคุณเปิดใช้งานโมดูลนั้นไว้ เพราะกฎสำหรับโมดูลที่ขาดหายไปอาจเกิดข้อผิดพลาดได้

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

ตัวสร้างนี้สร้างกฎใดได้บ้าง
มันสร้างกฎ Apache ทั่วไปได้ รวมถึงการบังคับหรือลบ www, การบังคับ HTTPS, redirect 301 และ 302, การบีบอัด GZIP, การควบคุมแคช, การป้องกัน hotlink, หน้าแสดงข้อผิดพลาดแบบกำหนดเอง, MIME type และไฟล์ index เริ่มต้น
redirect 301 กับ 302 ต่างกันอย่างไร
301 เป็น redirect แบบถาวรที่ส่งต่อค่า SEO ไปยัง URL ใหม่ ขณะที่ 302 เป็นแบบชั่วคราวและบอกเครื่องมือค้นหาว่า URL เดิมจะกลับมา
ฉันควรวางไฟล์ .htaccess ที่สร้างขึ้นไว้ที่ไหน
วางไว้ในไดเรกทอรีรากของเว็บไซต์บนเซิร์ฟเวอร์ Apache กฎจะมีผลทันที จึงควรสำรองไฟล์ .htaccess เดิมไว้ก่อน
มันใช้งานได้บน Nginx หรือเซิร์ฟเวอร์อื่นไหม
ไม่ รูปแบบ .htaccess ใช้เฉพาะกับ Apache (และเซิร์ฟเวอร์ที่เข้ากันได้ซึ่งมี mod_rewrite) ส่วน Nginx ใช้ไวยากรณ์การกำหนดค่าของตัวเองแทน
โค้ดที่สร้างขึ้นถูกส่งไปที่ไหนหรือไม่
ไม่ กฎถูกประกอบขึ้นในเบราว์เซอร์ของคุณจากตัวเลือกที่คุณเลือก จึงไม่มีการอัปโหลด และเครื่องมือนี้ใช้งานได้ฟรีโดยไม่ต้องลงทะเบียน

เครื่องมือที่เกี่ยวข้อง

ทำงานต่อด้วยเครื่องมือที่มีประโยชน์เหล่านี้

เครื่องมือตรวจสอบห่วงโซ่การเปลี่ยนเส้นทาง URL

เครื่องมือสร้าง Meta Tag

เครื่องสร้าง Robots.txt

Open Graph Previewer

เครื่องมือเข้ารหัส/ถอดรหัสเอนทิตี HTML

เครื่องมือดูส่วนหัว HTTP