2020 คู่มือฉบับสมบูรณ์ถึง. HTML – จากพื้นฐานสู่การเรียนรู้ขั้นสูง

การเปิดเผยข้อมูล: การสนับสนุนของคุณช่วยให้เว็บไซต์ทำงานต่อไป! เราได้รับค่าธรรมเนียมการอ้างอิงสำหรับบริการบางอย่างที่เราแนะนำในหน้านี้.


ด้วยการใช้ไฟล์. htaccess คุณสามารถควบคุมได้หลายแง่มุมของ Apache webserver (และตัวแปรต่างๆ) ด้านล่างนี้คุณจะได้เรียนรู้ทุกสิ่งที่คุณจำเป็นต้องรู้ในการตั้งค่าหน้าข้อผิดพลาดพิเศษไดเรกทอรีป้องกันรหัสผ่านการเปลี่ยนเส้นทางและอีกมากมาย.

Contents

วิธีใช้คู่มือนี้

คำแนะนำนี้ถูกสร้างขึ้นเพื่อใช้เป็นทรัพยากรที่ครอบคลุมสำหรับการใช้. htaccess หากคุณยังใหม่กับการใช้. htaccess โดยสมบูรณ์ – คุณอาจต้องการเริ่มต้นด้วยบทแรก“. htaccess Basics” ด้านล่าง.

หากคุณกำลังค้นหาตัวอย่างรหัสหรือแบบฝึกหัดที่เฉพาะเจาะจงดูที่การนำทางด้านขวามือของหน้านี้เพื่อข้ามไปยังส่วนย่อยภายในหน้านี้โดยตรง.

.ข้อมูลพื้นฐานเกี่ยวกับ htaccess

มาทำความคุ้นเคยกับพื้นฐาน. htaccess ก่อนดำน้ำเพื่อออกคำสั่ง.

. htaccess คืออะไร?

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

.ไฟล์ htaccess ทำงานที่ระดับไดเรกทอรีทำให้สามารถแทนที่การตั้งค่าส่วนกลางของ. htaccess ไดเรกทีฟที่สูงขึ้นในแผนผังไดเรกทอรี.

ใช้. htaccess อย่างไร?

การใช้งานทั่วไปบางอย่างสำหรับ. htaccess นั้นรวมถึงการเปลี่ยนเส้นทาง URL ทำให้สามารถใช้การป้องกันด้วยรหัสผ่านสำหรับเว็บไซต์ (หรือหน้าเว็บไซต์); การแสดงหน้าข้อผิดพลาดที่กำหนดเอง (เช่น 404 หน้า); และส่งเสริม SEO ผ่านนโยบายสแลชต่อท้ายที่สอดคล้องกัน.

ในกรณีหลังผู้ดูแลเว็บอาจเลือกที่จะต้องใช้เครื่องหมายทับท้ายที่ท้าย URL ทุกหน้าในเว็บไซต์หรือไม่.

ทำไมถึงเรียกว่า. htaccess?

.htaccess ย่อมาจาก “การเข้าถึงไฮเปอร์เท็กซ์” ชื่อนี้ได้มาจากการใช้งานดั้งเดิมของเครื่องมือซึ่งเป็นการควบคุมการเข้าถึงของผู้ใช้ไปยังไฟล์บางไฟล์ในแต่ละไดเรกทอรี.

การใช้ชุดย่อยของคำสั่งการตั้งค่า http.conf ของ Apache ทำให้. htaccess อนุญาตให้ผู้ดูแลระบบ จำกัด การเข้าถึงแต่ละไดเรกทอรีให้กับผู้ใช้ด้วยชื่อและรหัสผ่านที่ระบุในไฟล์. htpasswd.

แม้ว่าไฟล์. htaccess จะยังคงใช้สำหรับสิ่งนี้อยู่ แต่ก็ยังใช้สำหรับสิ่งอื่น ๆ อีกมากมายที่เราจะกล่าวถึงในคู่มือนี้.

ไฟล์. htaccess อยู่ที่ไหน?

ในทางทฤษฎีแล้วทุก ๆ โฟลเดอร์ (ไดเรกทอรี) บนเซิร์ฟเวอร์ของคุณอาจมีหนึ่งโฟลเดอร์ แม้ว่าโดยทั่วไปจะมีอยู่ในโฟลเดอร์เว็บรูทของคุณนั่นคือโฟลเดอร์ที่เก็บเนื้อหาทั้งหมดของเว็บไซต์ของคุณและมักจะมีป้ายกำกับเช่น public_html หรือ www.

หากคุณมีไดเรกทอรีเดียวที่มีไดเรกทอรีย่อยหลายเว็บไซต์โดยปกติจะมีไฟล์. htaccess ในไดเรกทอรี root หลัก (public_html) และอีกไดเรกทอรีหนึ่งในแต่ละไดเรกทอรีย่อย (/ sitename).

เหตุใดฉันไม่สามารถค้นหาไฟล์. htaccess ของฉันได้?

ในระบบไฟล์ส่วนใหญ่ชื่อไฟล์ที่ขึ้นต้นด้วยจุด (.) คือไฟล์ที่ถูกซ่อน ซึ่งหมายความว่าโดยทั่วไปจะไม่สามารถมองเห็นได้ตามค่าเริ่มต้น.

แต่พวกเขาไม่ได้ไปยาก ไคลเอนต์ FTP หรือตัวจัดการไฟล์ของคุณควรมีการตั้งค่าสำหรับ“ แสดงไฟล์ที่ซ่อน” สิ่งนี้จะอยู่ในสถานที่ต่าง ๆ ในโปรแกรมต่าง ๆ แต่โดยปกติจะอยู่ใน“ การตั้งค่า”,“ การตั้งค่า” หรือ“ ตัวเลือกโฟลเดอร์” บางครั้งคุณจะพบมันในเมนู “ดู”.

จะทำอย่างไรถ้าฉันไม่มีไฟล์. htaccess?

ก่อนอื่นตรวจสอบให้แน่ใจว่าคุณได้เปิด “แสดงไฟล์ที่ซ่อน” (หรือไฟล์ที่เทียบเท่า) เพื่อให้แน่ใจว่าคุณไม่มีไฟล์จริง บ่อยครั้งที่ไฟล์. htaccess จะถูกสร้างขึ้นโดยอัตโนมัติดังนั้นคุณมักจะมีหนึ่งไฟล์ แต่นี่ไม่ใช่กรณีเสมอไป.

หากคุณไม่มีจริงๆคุณสามารถสร้างได้อย่างง่ายดาย:

  • เริ่มไฟล์ใหม่ในโปรแกรมแก้ไขข้อความธรรมดา.
  • บันทึกในรูปแบบ ASCII (ไม่ใช่ UTF-8 หรืออะไรก็ได้) เป็น. htaccess.
    • ตรวจสอบให้แน่ใจว่าไม่ใช่ htaccess.txt หรืออะไรทำนองนั้น ไฟล์ควรมีชื่อ. htaccess เท่านั้นโดยไม่มีนามสกุลไฟล์เพิ่มเติม.
  • อัปโหลดไปยังไดเรกทอรีที่เหมาะสมผ่านทาง FTP หรือตัวจัดการไฟล์บนเบราว์เซอร์ของคุณ.

การจัดการข้อผิดพลาด

การใช้ไฟล์. htaccess เพื่อระบุเอกสารข้อผิดพลาดนั้นง่ายมากซึ่งเป็นหนึ่งในสิ่งที่ง่ายที่สุดที่คุณสามารถทำได้ด้วยคุณสมบัตินี้.

รหัสข้อผิดพลาดคืออะไร?

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

หากมีสิ่งผิดปกติเกิดขึ้นจะเกิดข้อผิดพลาดขึ้น ข้อผิดพลาดประเภทต่าง ๆ มีรหัสข้อผิดพลาดต่างกัน คุณอาจคุ้นเคยกับข้อผิดพลาด 404 ซึ่งจะถูกส่งคืนหากไม่พบเอกสารบนเซิร์ฟเวอร์.

มีรหัสข้อผิดพลาดอื่น ๆ อีกมากมายที่เซิร์ฟเวอร์สามารถตอบสนองได้.

ข้อผิดพลาดคำขอของลูกค้า

  • 400 – คำขอไม่ถูกต้อง
  • 401 – ต้องได้รับอนุญาต
  • 402 – การชำระเงินที่ต้องการ (ยังไม่ได้ใช้)
  • 403 – สิ่งต้องห้าม
  • 404 – ไม่พบ
  • 405 – วิธีการไม่ได้รับอนุญาต
  • 406 – ไม่สามารถยอมรับได้ (การเข้ารหัส)
  • 407 – ต้องการการรับรองความถูกต้องของพร็อกซี
  • 408 – คำขอหมดเวลา
  • 409 – คำขอที่ขัดแย้ง
  • 410 – หายไป
  • 411 – ความยาวเนื้อหาที่ต้องการ
  • 412 – เงื่อนไขเบื้องต้นล้มเหลว
  • 413 – เอนทิตีที่ขอยาวเกินไป
  • 414 – คำขอ URI ยาวเกินไป
  • 415 – ประเภทสื่อที่ไม่รองรับ.

ข้อผิดพลาดของเซิร์ฟเวอร์

  • 500 ข้อผิดพลาดภายในเซิร์ฟเวอร์
  • 501 – ไม่ดำเนินการ
  • 502 – เกตเวย์ไม่ดี
  • 503 – บริการไม่พร้อมใช้งาน
  • 504 – การหมดเวลาของเกตเวย์
  • 505 – ไม่รองรับรุ่น HTTP.

การจัดการข้อผิดพลาดเริ่มต้น

หากคุณไม่ได้ระบุการจัดการข้อผิดพลาดใด ๆ เซิร์ฟเวอร์จะส่งข้อความกลับไปที่เบราว์เซอร์และเบราว์เซอร์จะแสดงข้อความแสดงข้อผิดพลาดทั่วไปให้กับผู้ใช้ ซึ่งมักจะไม่เหมาะ.

การระบุเอกสารข้อผิดพลาด

สร้างเอกสาร HTML สำหรับรหัสข้อผิดพลาดแต่ละรายการที่คุณต้องการจัดการ คุณสามารถตั้งชื่อสิ่งเหล่านี้ได้ตามต้องการ แต่จะมีประโยชน์หากตั้งชื่อสิ่งที่จะช่วยให้คุณจดจำสิ่งที่พวกเขาต้องการเช่น not-Found.html หรือเพียง 404.html.

จากนั้นในไฟล์. htaccess ให้ระบุเอกสารที่จะใช้กับข้อผิดพลาดแต่ละประเภท.

ErrorDocument 400 /errors/bad-request.html
ErrorDocument 401 /errors/auth-reqd.html
ErrorDocument 403 /errors/forbid.html
ErrorDocument 404 /errors/not-found.html
ErrorDocument 500 /errors/server-err.html

ขอให้สังเกตว่าแต่ละคำสั่งจะอยู่ในบรรทัดของตัวเอง.

และนั่นคือมัน ง่ายมาก.

ทางเลือก เพื่อ. htaccess สำหรับการจัดการข้อผิดพลาด

ระบบการจัดการเนื้อหา (CMS) ส่วนใหญ่เช่น WordPress และ Drupal และเว็บแอปส่วนใหญ่จะมีวิธีจัดการรหัสข้อผิดพลาดเหล่านี้ส่วนใหญ่.

การป้องกันรหัสผ่านด้วย. htaccess

จุดประสงค์ดั้งเดิมของไฟล์. htaccess คือ จำกัด การเข้าถึงบางไดเรกทอรีตามการใช้งานของผู้ใช้แต่ละคน (เช่นชื่อการเข้าถึงไฮเปอร์เท็กซ์) ดังนั้นเราจะดูก่อน.

.htpasswd

ชื่อผู้ใช้และรหัสผ่านสำหรับระบบ. htaccess จะถูกเก็บไว้ในชื่อไฟล์. htpasswd.

สิ่งเหล่านี้ถูกเก็บไว้ในบรรทัดเดียวในรูปแบบ:

ชื่อผู้ใช้: EncryptedPassword

ตัวอย่างเช่น:

johnsmith: F418zSM0k6tGI

สิ่งสำคัญคือต้องตระหนักว่ารหัสผ่านที่จัดเก็บไว้ในไฟล์ไม่ใช่รหัสผ่านจริงที่ใช้ในการเข้าสู่ระบบ แต่เป็นการแฮชเข้ารหัสของรหัสผ่าน.

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

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

อัลกอริทึมการแปลงแป้นพิมพ์ที่แตกต่างกันสามารถใช้ได้:

  • อัลกอริทึมที่ปลอดภัย – ใช้หนึ่งในเหล่านี้
    • bcrypt – มันปลอดภัยที่สุด แต่ก็ช้าที่สุดในการคำนวณ สนับสนุนโดย Apache และ Nginx.
    • md5 – นี่คืออัลกอริทึมการแฮชเริ่มต้นที่ใช้โดย Apache รุ่นปัจจุบัน Nginx ไม่รองรับ.
  • อัลกอริทึมที่ไม่ปลอดภัย – อย่าใช้คนอื่น
    • crypt () – สิ่งนี้เคยเป็นฟังก์ชั่นการแฮชเริ่มต้น แต่มันไม่ปลอดภัยมาก.
    • SHA และเค็ม SHA.

การสร้างชื่อผู้ใช้และรหัสผ่านบนบรรทัดคำสั่ง

คุณสามารถสร้างไฟล์. htpasswd และเพิ่มคู่ชื่อผู้ใช้ – รหัสผ่านเข้าโดยตรงจากบรรทัดคำสั่งหรือเทอร์มินัล SSH.

คำสั่งสำหรับจัดการกับไฟล์. htpasswd เป็นเพียง htpasswd.

หากต้องการสร้างไฟล์. htpasswd ใหม่ให้ใช้คำสั่งพร้อมกับตัวเลือก -c (สำหรับสร้าง) จากนั้นพิมพ์เส้นทางไปยังไดเรกทอรี (ไม่ใช่ URL ซึ่งเป็นเส้นทางจริงบนเซิร์ฟเวอร์) คุณยังสามารถรวมผู้ใช้ที่คุณต้องการเพิ่ม.

> htpasswd -c /usr/local/etc/.htpasswd johnsmith

สิ่งนี้จะสร้างไฟล์. htpasswd ใหม่ในไดเร็กทอรี / etc / และเพิ่มเร็กคอร์ดสำหรับผู้ใช้ที่ชื่อ johnsmith คุณจะได้รับแจ้งให้ใส่รหัสผ่านซึ่งจะถูกจัดเก็บโดยใช้การเข้ารหัส md5.

หากมีไฟล์. htpasswd อยู่ในตำแหน่งที่ระบุไว้ไฟล์ใหม่จะไม่ถูกสร้างขึ้น – ผู้ใช้ใหม่จะถูกผนวกเข้ากับไฟล์ที่มีอยู่.

หากคุณต้องการใช้อัลกอริทึมการแฮช bcrypt ให้ใช้ตัวเลือก -b.

การแฮ็นรหัสผ่านโดยไม่มีบรรทัดคำสั่ง

หากคุณรู้สึกไม่สะดวกสบายในการใช้บรรทัดคำสั่งหรือเทอร์มินัล SSH (หรือหากคุณไม่สามารถเข้าถึงได้ด้วยเหตุผลบางอย่าง) คุณสามารถสร้างไฟล์. htpasswd และสร้างไฟล์โดยใช้โปรแกรมแก้ไขข้อความธรรมดาและอัปโหลดไฟล์ ผ่าน FTP หรือตัวจัดการไฟล์.

แต่คุณจะต้องเข้ารหัสรหัสผ่านของคุณอย่างใดเนื่องจากคำสั่ง htpasswd ดูแลให้คุณ.

มียูทิลิตี้การเข้ารหัส. htpasswd จำนวนมากที่พร้อมใช้งานออนไลน์ หนึ่งที่ดีที่สุดน่าจะเป็นเครื่องกำเนิด htpasswd ที่ Aspirine.org.

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

ตำแหน่งที่จะเก็บไฟล์. htpasswd ของคุณ

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

ไฟล์. htpasswd ไม่ควรอยู่ในไดเรกทอรีที่สาธารณชนสามารถเข้าถึงได้ – ไม่ใช่ public_html หรือ www หรือไดเรกทอรีย่อยใด ๆ ควรอยู่ด้านบนในโฟลเดอร์ที่สามารถเข้าถึงได้จากเซิร์ฟเวอร์เท่านั้น.

วิธีใช้. htpasswd ด้วย. htaccess

แต่ละไดเรกทอรีสามารถมีไฟล์. htaccess ของตัวเองพร้อมกับชุดของผู้ใช้ที่ได้รับอนุญาตให้เข้าถึงได้.

หากคุณต้องการให้คนใดคนหนึ่ง (รวมถึงผู้ใช้ที่ไม่ได้เข้าสู่ระบบ) เพื่อเข้าถึงไดเรกทอรีและไฟล์ของมันเพียงแค่ทำอะไร – นั่นคือค่าเริ่มต้น.

ในการ จำกัด การเข้าถึงคุณจำเป็นต้องเพิ่มสิ่งต่อไปนี้ในไฟล์. htaccess:

AuthUserFile /usr/local/etc/.htpasswd
AuthName "ชื่อพื้นที่ปลอดภัย"
AuthType พื้นฐาน

ต้องการผู้ใช้ที่ถูกต้อง

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

แท็กระบุสิ่งที่ถูก จำกัด (ในกรณีนี้ความสามารถในการ GET หรือ POST ไปยังไฟล์ใด ๆ ในไดเรกทอรี) ภายในคู่ของแท็กคือรายการของผู้ที่ได้รับอนุญาตให้เข้าถึงไฟล์.

ในตัวอย่างข้างต้นผู้ใช้ที่ถูกต้องสามารถเข้าถึงไฟล์ได้ หากคุณต้องการ จำกัด การเข้าถึงเฉพาะผู้ใช้หรือผู้ใช้ไม่กี่คนคุณสามารถตั้งชื่อพวกเขาได้.

AuthUserFile /usr/local/etc/.htpasswd
AuthName "ชื่อพื้นที่ปลอดภัย"
AuthType พื้นฐาน

ต้องการ johnsmith ของผู้ใช้
ต้องการผู้ใช้ janedoe

นอกจากนี้คุณยังสามารถใส่ผู้ใช้ในกลุ่มและอนุญาตการเข้าถึงตามกลุ่ม สิ่งนี้ทำได้โดยการเพิ่มไฟล์อื่นที่ระบุกลุ่ม.

ไฟล์กลุ่มซึ่งอาจมีชื่อว่า (ตัวอย่าง). htgroups มีลักษณะดังนี้:

ผู้ดูแลระบบ: johnsmith janedoe
ทีมงาน: jackdoe cindysmith

จากนั้นคุณสามารถระบุในไฟล์. htaccess ของคุณ:

AuthUserFile /usr/local/etc/.htpasswd
AuthGroupFile /usr/local/etc/.htgroup
AuthName "เขตการปกครอง"
AuthType พื้นฐาน

ต้องการผู้ดูแลกลุ่ม

ทางเลือกเพื่อ. htpasswd

การใช้. htaccess และ. htpasswd เพื่อ จำกัด การเข้าถึงไฟล์บางไฟล์บนเซิร์ฟเวอร์ของคุณจะเหมาะสมจริงๆถ้าคุณมีไฟล์สแตติกจำนวนมาก คุณลักษณะนี้ได้รับการพัฒนาเมื่อเว็บไซต์มักจะรวบรวมเอกสาร HTML และทรัพยากรที่เกี่ยวข้อง.

หากคุณใช้ระบบจัดการเนื้อหา (CMS) เช่น WordPress หรือ Drupal คุณสามารถใช้คุณสมบัติการจัดการผู้ใช้ในตัวเพื่อ จำกัด หรือให้สิทธิ์การเข้าถึงเนื้อหา.

การเปิดใช้งานการรวมเซิร์ฟเวอร์ (SSI)

ทีนี้มาเรียนรู้ว่า Server Side รวมถึงอะไรและคุณสามารถใช้งานได้อย่างไร.

Server Side ประกอบด้วยอะไรบ้าง?

SSI หรือฝั่งเซิร์ฟเวอร์รวมเป็นภาษาสคริปต์น้ำหนักเบาที่ใช้เป็นหลักในการฝังเอกสาร HTML ลงในเอกสาร HTML อื่น ๆ สิ่งนี้ทำให้ง่ายต่อการใช้องค์ประกอบทั่วไปเช่นส่วนหัวท้ายกระดาษด้านข้างและเมนู คุณสามารถคิดว่ามันเป็นสารตั้งต้นสำหรับระบบการจัดการเทมเพลตและการจัดการเนื้อหาในปัจจุบัน.


SSI ยังมีคำสั่งแบบมีเงื่อนไข (ถ้า, อื่น, ฯลฯ ) และตัวแปรทำให้สมบูรณ์หากค่อนข้างยากที่จะใช้ภาษาสคริปต์ (โดยทั่วไปโครงการใด ๆ ที่ซับซ้อนเกินกว่าจะรวมอยู่ด้วยจะทำให้ผู้พัฒนาเลือกภาษาที่มีประสิทธิภาพมากขึ้นเช่น PHP หรือ Perl)

กำลังเปิดใช้งาน SSI

เซิร์ฟเวอร์เว็บโฮสติ้งบางแห่งจะเปิดใช้งานการรวมเซิร์ฟเวอร์ไว้ตามค่าเริ่มต้น หากไม่เป็นเช่นนั้นคุณสามารถเปิดใช้งานด้วยไฟล์. htaccess เช่น:

AddType text / html .shtml
AddHandler แยกวิเคราะห์เซิร์ฟเวอร์. shtml
ดัชนีตัวเลือก FollowSymLinks รวมถึง

สิ่งนี้ควรเปิดใช้งาน SSI สำหรับไฟล์ทั้งหมดที่มีนามสกุล. shtml.

SSI ในไฟล์. html

หากคุณต้องการเปิดใช้งานการแยกวิเคราะห์ SSI ในไฟล์. html คุณสามารถเพิ่มคำสั่งเพื่อให้บรรลุดังนี้:

AddHandler แยกวิเคราะห์เซิร์ฟเวอร์. html

ประโยชน์ของการทำเช่นนี้คือคุณสามารถใช้ SSI โดยไม่ให้โลกรู้ว่าคุณกำลังใช้งานอยู่ นอกจากนี้หากคุณเปลี่ยนการใช้งานในอนาคตคุณสามารถเก็บนามสกุลไฟล์. html ของคุณไว้ได้.

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

SSI ในหน้าดัชนีของคุณ

หากคุณไม่ต้องการแยกไฟล์. html ทั้งหมด แต่คุณต้องการใช้ SSI ในหน้าดัชนี (หน้าแรก) คุณจะต้องระบุไฟล์นั้นในไฟล์. htaccess ของคุณ.

นั่นเป็นเพราะเมื่อเว็บเซิร์ฟเวอร์กำลังมองหาหน้าดัชนีของไดเรกทอรีมันจะค้นหา index.html เว้นแต่คุณจะระบุเป็นอย่างอื่น.

หากคุณไม่ได้แยกไฟล์. html คุณจะต้องมีหน้าดัชนีของคุณชื่อ index.shtml เพื่อให้ SSI ทำงานและเซิร์ฟเวอร์ของคุณไม่ทราบว่าจะมองหาสิ่งนั้นเป็นค่าเริ่มต้น.

หากต้องการเปิดใช้งานให้เพิ่ม:

DirectoryIndex index.shtml index.html

สิ่งนี้แจ้งเตือนเว็บเซิร์ฟเวอร์ว่าไฟล์ index.shtml เป็นไฟล์ดัชนีหลักสำหรับไดเรกทอรี พารามิเตอร์ที่สองคือ index.html เป็นการสำรองข้อมูลในกรณีที่ไม่สามารถค้นหา index.shtml ได้.

การขึ้นบัญชีดำ IP และการอนุญาตพิเศษ IP

คุณสามารถใช้. htaccess เพื่อบล็อกผู้ใช้จากที่อยู่ IP เฉพาะ (บัญชีดำ) สิ่งนี้มีประโยชน์หากคุณระบุผู้ใช้แต่ละคนจากที่อยู่ IP เฉพาะที่ทำให้เกิดปัญหา.

นอกจากนี้คุณยังสามารถย้อนกลับปิดกั้นทุกคนยกเว้นผู้เยี่ยมชมจากที่อยู่ IP เฉพาะ (รายการที่อนุญาต) สิ่งนี้มีประโยชน์หากคุณต้องการ จำกัด การเข้าถึงเฉพาะผู้ใช้ที่ได้รับอนุมัติ.

ขึ้นบัญชีดำโดย IP

หากต้องการบล็อกที่อยู่ IP เฉพาะให้ใช้คำสั่งต่อไปนี้พร้อมกับที่อยู่ IP ที่เหมาะสม:

คำสั่งอนุญาต, ปฏิเสธ
ปฏิเสธจาก 111.22.3.4
ปฏิเสธจาก 789.56.4.
อนุญาตจากทั้งหมด

บรรทัดแรกระบุว่าคำสั่งอนุญาตจะได้รับการประเมินก่อนที่จะมีคำสั่งปฏิเสธ ซึ่งหมายความว่าการอนุญาตจากทั้งหมดจะเป็นสถานะเริ่มต้นจากนั้นเฉพาะผู้ที่ตรงกับคำสั่งปฏิเสธจะถูกปฏิเสธ.

หากสิ่งนี้กลับคำสั่งปฏิเสธให้อนุญาตจากนั้นสิ่งสุดท้ายที่ประเมินจะอนุญาตจากคำสั่งทั้งหมดซึ่งจะช่วยให้ทุกคนเอาชนะคำสั่งปฏิเสธ.

สังเกตบรรทัดที่สามซึ่งปฏิเสธตั้งแต่ 789.56.4 – นั่นไม่ใช่ที่อยู่ IP ที่สมบูรณ์ การดำเนินการนี้จะปฏิเสธที่อยู่ IP ทั้งหมดในบล็อกนั้น (ใด ๆ ที่ขึ้นต้นด้วย 789.56.4).

คุณสามารถรวมที่อยู่ IP ได้มากเท่าที่คุณต้องการหนึ่งรายการในแต่ละบรรทัดพร้อมกับปฏิเสธจากคำสั่ง.

รายการที่อนุญาตโดย IP

ด้านหลังของบัญชีดำคือบัญชีขาว – จำกัด ทุกคนยกเว้นที่คุณระบุ.

ตามที่คุณอาจเดาได้ว่าคำสั่งสั่งซื้อจะต้องย้อนกลับเพื่อให้ทุกคนถูกปฏิเสธก่อน แต่ก็อนุญาตให้ใช้ที่อยู่บางอย่างได้.

คำสั่งปฏิเสธอนุญาต
ปฏิเสธจากทั้งหมด
อนุญาตจาก 111.22.3.4
อนุญาตจาก 789.56.4.

การปิดกั้นการกระทำ

.htaccess สามารถใช้เพื่อบล็อกผู้ใช้ตามโดเมนหรือผู้อ้างอิง และคุณสามารถใช้มันเพื่อป้องกันบอทและแครปเปอร์ ลองดูวิธีการ.

วิธีการบล็อกผู้ใช้ตามโดเมน

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

อย่างไรก็ตามสิ่งนี้จะไม่ทำงานกับคนที่สามารถควบคุมการจับคู่ที่อยู่ IP ย้อนกลับ DNS ของพวกเขา.

คำสั่งอนุญาต, ปฏิเสธ
ปฏิเสธจาก example.com
อนุญาตจากทั้งหมด

สิ่งนี้ใช้ได้กับโดเมนย่อยเช่นกัน – ในตัวอย่างก่อนหน้านี้ผู้เข้าชมจาก xyz.example.com จะถูกบล็อกด้วย.

วิธีการบล็อกผู้ใช้โดย Referrer

ผู้อ้างอิงคือเว็บไซต์ที่มีลิงค์ไปยังเว็บไซต์ของคุณ เมื่อมีคนติดตามลิงค์ไปยังหน้าหนึ่งในเว็บไซต์ของคุณไซต์ที่พวกเขามานั้นเป็นผู้อ้างอิง.

สิ่งนี้ใช้ไม่ได้กับไฮเปอร์ลิงก์ที่คลิกได้ไปยังเว็บไซต์ของคุณ.

หน้าใดก็ได้ในอินเทอร์เน็ตสามารถเชื่อมโยงโดยตรงไปยังรูปภาพของคุณ (“ hotlinking”) – ใช้แบนด์วิดท์ของคุณและอาจละเมิดลิขสิทธิ์ของคุณโดยไม่ให้ผลประโยชน์ใด ๆ กับคุณในแง่ของปริมาณการใช้งาน พวกเขายังสามารถเชื่อมโยงไปยังไฟล์ CSS สคริปต์ JS หรือทรัพยากรอื่น ๆ.

เจ้าของเว็บไซต์ส่วนใหญ่ตกลงกับสิ่งนี้เมื่อเกิดขึ้นเพียงเล็กน้อย แต่บางครั้งสิ่งนี้อาจกลายเป็นการละเมิด.

นอกจากนี้บางครั้งการเชื่อมโยงหลายมิติที่สามารถคลิกได้จริงในข้อความนั้นเป็นปัญหาเช่นเมื่อมาจากเว็บไซต์ที่ไม่เป็นมิตร.

ด้วยเหตุผลเหล่านี้คุณอาจต้องการปิดกั้นคำขอที่มาจากผู้อ้างอิงเฉพาะ.

ในการทำเช่นนี้คุณต้องเปิดใช้งานโมดูล mod_rewrite สิ่งนี้เปิดใช้งานโดยค่าเริ่มต้นสำหรับโฮสต์เว็บส่วนใหญ่ แต่ถ้าไม่ (หรือคุณไม่แน่ใจ) คุณสามารถถาม บริษัท โฮสติ้งของคุณได้ (หากพวกเขาไม่สามารถเปิดใช้งานหรือไม่เปิดใช้งานคุณอาจต้องการนึกถึงโฮสต์ใหม่)

คำสั่ง. htaccess ที่บรรลุการบล็อกโดยอ้างอิงของผู้อ้างอิงนั้นขึ้นอยู่กับเอ็นจิ้น mod_rewrite.

รหัสที่จะบล็อกโดยผู้อ้างอิงมีลักษณะเช่นนี้:

เขียนใหม่เปิด
RewriteCond% ^ http: //.*example.com [NC, OR]
RewriteCond% ^ http: //.*anotherexample.com [NC, OR]
RewriteCond% ^ http: //.*onemoreexample.com [NC]
RewriteRule. * – [F]

นี่เป็นเรื่องยุ่งยากเล็กน้อยดังนั้นให้เราผ่านมันไปให้ได้.

บรรทัดแรกเปิด RewriteEngine เตือน parser ว่ามีชุดคำสั่งที่เกี่ยวข้องกับการเขียนใหม่กำลังมา.

สามบรรทัดถัดไปแต่ละบล็อกอ้างอิงโดเมนหนึ่ง ส่วนที่คุณต้องเปลี่ยนเพื่อใช้เองคือชื่อโดเมน (ตัวอย่าง) และส่วนขยาย (.com).

แบ็กสแลชก่อน. com คืออักขระเลี่ยง การจับคู่รูปแบบที่ใช้ในชื่อโดเมนเป็นนิพจน์ทั่วไปและจุดหมายถึงบางสิ่งใน RegEx ดังนั้นจึงต้อง “หลบหนี” โดยใช้เครื่องหมายแบ็กสแลช.

NC ในวงเล็บระบุว่าการจับคู่ไม่ควรตรงตามตัวพิมพ์ใหญ่ – เล็ก OR เป็นตัวอักษร“ หรือ” และหมายความว่ามีกฎอื่นเข้ามา (นั่นคือ – ถ้า URL เป็นอันนี้หรืออันนี้หรืออันนี้ให้ทำตามกฎการเขียนซ้ำนี้)

บรรทัดสุดท้ายคือกฎการเขียนซ้ำจริง [F] หมายถึง“ ต้องห้าม” คำขอใด ๆ ที่มีผู้อ้างอิงที่ตรงกับรายการในรายการจะล้มเหลวและส่งข้อผิดพลาดต้องห้าม 403.

การปิดกั้นบ็อตและ Web Scrapers

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

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

แน่นอนมีบอทที่ถูกต้องเช่นเดียวกับจากเครื่องมือค้นหาสำคัญ ๆ แต่ส่วนที่เหลือเป็นเหมือนศัตรูพืชที่กินทรัพยากรของคุณและส่งมอบคุณค่าให้กับคุณไม่ว่าอะไรก็ตาม.

มีหลายร้อยบอทระบุ คุณจะไม่สามารถปิดกั้นพวกเขาทั้งหมดได้ แต่คุณสามารถทำให้กิจกรรมดังกล่าวเป็นเสียงคำรามที่น่าเบื่อได้โดยการบล็อกให้มากที่สุดเท่าที่จะทำได้.

มีชุดของกฎการเขียนใหม่ที่มีประโยชน์ซึ่งบล็อกบอทที่รู้จักมากกว่า 400 ชุดที่รวบรวมโดย AskApache.

การระบุไฟล์เริ่มต้นสำหรับไดเรกทอรี

เมื่อมีการร้องขอไปยังเว็บเซิร์ฟเวอร์สำหรับ URL ที่ไม่ได้ระบุชื่อไฟล์ข้อสันนิษฐานที่สร้างขึ้นในเว็บเซิร์ฟเวอร์ส่วนใหญ่คือ URL นั้นอ้างถึงไดเรกทอรี.

ดังนั้นหากคุณขอ http://example.com Apache (และเว็บเซิร์ฟเวอร์อื่น ๆ ส่วนใหญ่) จะค้นหาในไดเรกทอรีรากสำหรับโดเมน (โดยปกติ / public_html หรือสิ่งที่คล้ายกัน แต่อาจเป็น / example-com) เป็นค่าเริ่มต้น ไฟล์.

ไฟล์เริ่มต้นโดยค่าเริ่มต้นจะเรียกว่า index.html สิ่งนี้จะย้อนกลับไปที่จุดเริ่มต้นของอินเทอร์เน็ตเมื่อเว็บไซต์เป็นเพียงการรวบรวมเอกสารและหน้า “โฮม” มักจะเป็นดัชนีของเอกสารเหล่านั้น.

แต่คุณอาจไม่ต้องการให้ index.html เป็นหน้าเริ่มต้น ตัวอย่างเช่นคุณอาจต้องการไฟล์ประเภทอื่นเช่น index.shtml, index.xml หรือ index.php.

หรือคุณอาจไม่คิดว่าหน้าแรกของคุณเป็น “ดัชนี” และต้องการเรียกมันว่าเป็นอะไรที่แตกต่างออกไปเช่น home.html หรือ main.html.

การตั้งค่าหน้าไดเรกทอรีเริ่มต้น

.htaccess ช่วยให้คุณสามารถตั้งค่าหน้าเริ่มต้นสำหรับไดเรกทอรีได้อย่างง่ายดาย:

DirectoryIndex [ชื่อไฟล์ที่นี่]

หากคุณต้องการให้ค่าเริ่มต้นเป็น home.html มันง่ายเหมือน:

DirectoryIndex home.html

การตั้งค่าหลายหน้าเริ่มต้น

คุณยังสามารถระบุ DirectoryIndex ได้มากกว่าหนึ่งรายการ:

DirectoryIndex index.php index.shtml index.html

วิธีการทำงานนี้คือเว็บเซิร์ฟเวอร์จะมองหาคนแรกก่อน หากไม่พบสิ่งนั้นจะค้นหาสิ่งที่สองและต่อไปเรื่อย ๆ.

ทำไมคุณต้องการทำเช่นนี้? แน่นอนคุณรู้ว่าไฟล์ที่คุณต้องการใช้เป็นหน้าเริ่มต้นของคุณใช่ไหม?

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

ความสามารถในการวางกฎเหล่านั้นในไฟล์. htaccess หนึ่งไฟล์ในรูทหมายความว่าคุณไม่จำเป็นต้องทำซ้ำคำสั่งอื่น ๆ ทั้งหมดในไฟล์ในทุกระดับไดเรกทอรี.

การเปลี่ยนเส้นทาง URL และการเขียน URL ใหม่

หนึ่งในการใช้งานทั่วไปของไฟล์. htaccess คือการเปลี่ยนเส้นทาง URL.

ควรเปลี่ยนเส้นทาง URL เมื่อ URL สำหรับเอกสารหรือทรัพยากรมีการเปลี่ยนแปลง สิ่งนี้มีประโยชน์อย่างยิ่งหากคุณจัดระเบียบเว็บไซต์ใหม่หรือเปลี่ยนชื่อโดเมน.

301 กับ 302 การเปลี่ยนเส้นทาง

จากมุมมองของเบราว์เซอร์มีการเปลี่ยนเส้นทางสองประเภทคือ 301 และ 302 (ตัวเลขเหล่านี้อ้างถึงรหัสข้อผิดพลาดที่สร้างโดยเว็บเซิร์ฟเวอร์)

301 หมายถึง“ ย้ายอย่างถาวร” ในขณะที่ 302 หมายถึง“ ย้ายชั่วคราว” ในกรณีส่วนใหญ่คุณต้องการใช้ 301 วิธีนี้จะรักษาส่วน SEO ใด ๆ ที่มี URL ดั้งเดิมส่งผ่านไปยังหน้าใหม่.

มันจะทำให้เบราว์เซอร์ส่วนใหญ่อัปเดตบุ๊กมาร์ก เบราว์เซอร์ส่วนใหญ่จะทำแผนที่เก่าไปใหม่เพื่อแคชดังนั้นพวกเขาจะขอ URL ใหม่เมื่อลิงค์หรือผู้ใช้พยายามเข้าถึงต้นฉบับ หาก URL มีการเปลี่ยนแปลงอย่างถาวรนี่เป็นผลลัพธ์ที่พึงประสงค์ทั้งหมด.

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

ตัวอย่างทั้งหมดในส่วนนี้จะใช้การเปลี่ยนเส้นทาง 301.

เปลี่ยนเส้นทางและเขียนซ้ำ

มีสองวิธีในการ “เปลี่ยน” URL ที่มีคำสั่ง. htaccess – คำสั่ง Redirect และเอ็นจิ้น mod_rewrite.

คำสั่งเปลี่ยนเส้นทางส่งข้อความเปลี่ยนเส้นทางไปยังเบราว์เซอร์จริง ๆ แล้วบอกสิ่งที่ URL อื่น ๆ ที่จะมองหา.

โดยทั่วไปเครื่องมือ mod_rewrite จะ “แปล” หนึ่ง URL (ที่มีให้ในคำขอ) เป็นสิ่งที่ระบบไฟล์หรือ CMS จะเข้าใจแล้วจัดการกับคำขอราวกับว่า URL ที่แปลนั้นเป็น URL ที่ร้องขอ.

เมื่อใช้วิธีนี้เว็บเบราว์เซอร์จะไม่สังเกตเห็นว่ามีสิ่งใดเกิดขึ้น แต่เพิ่งได้รับเนื้อหาที่ร้องขอ.

เครื่องมือ mod_rewrite ยังสามารถใช้เพื่อสร้างการเปลี่ยนเส้นทาง 301 ที่ทำงานในลักษณะเดียวกับคำสั่ง Redirect แต่มีตัวเลือกเพิ่มเติมสำหรับกฎ – mod_rewrite สามารถมีการจับคู่รูปแบบที่ซับซ้อนและคำแนะนำการเขียนใหม่ซึ่ง Redirect ไม่สามารถใช้ประโยชน์จาก.

การเปลี่ยนเส้นทางหน้าพื้นฐาน

หากต้องการเปลี่ยนเส้นทางหนึ่งหน้าไปยัง URL อื่นรหัสคือ:

เปลี่ยนเส้นทาง 301 /relative-url.html http://example.com/full-url.html

คำสั่งบรรทัดเดียวนี้มีสี่ส่วนแต่ละส่วนคั่นด้วยช่องว่างเดียว:

  • คำสั่ง Redirect
  • ประเภทของการเปลี่ยนเส้นทาง (301 – ย้ายอย่างถาวร)
  • URL สัมพัทธ์ของหน้าต้นฉบับ
  • URL แบบเต็มและสมบูรณ์ของหน้าใหม่.

URL สัมพัทธ์นั้นสัมพันธ์กับไดเรกทอรีที่มีไฟล์. htaccess ซึ่งโดยปกติจะเป็นเว็บรูทหรือรูทของโดเมน.

ดังนั้นหาก http://example.com/blog.php ถูกย้ายไปที่ http://blog.example.com รหัสจะเป็น:

เปลี่ยนเส้นทาง 301 /blog.php http://blog.example.com

การเปลี่ยนเส้นทางส่วนใหญ่ของเว็บไซต์ของคุณ

หากคุณย้ายโครงสร้างไดเรกทอรีของคุณไปรอบ ๆ แต่ทำให้ชื่อหน้าของคุณเหมือนเดิมคุณอาจต้องการเปลี่ยนเส้นทางคำขอทั้งหมดของไดเรกทอรีหนึ่งไปยังไดเรกทอรีใหม่.

เปลี่ยนเส้นทาง 301 / old-directory http://example.com/new-directory

การเปลี่ยนเส้นทางไซต์ทั้งหมด

จะเกิดอะไรขึ้นถ้าทั้งเว็บไซต์ของคุณย้ายไปที่ URL ใหม่ ง่าย.

เปลี่ยนเส้นทาง 301 / http://newurl.com

การเปลี่ยนเส้นทาง www ไปยังที่ไม่ใช่ www

มากขึ้นเว็บไซต์กำลังเคลื่อนห่างจากโดเมนย่อย www.

ไม่จำเป็นจริงๆ แต่มันก็เป็นสิ่งที่หลงเหลือมาตั้งแต่สมัยที่คนส่วนใหญ่ที่ใช้งานเว็บไซต์ใช้เซิร์ฟเวอร์เพื่อจัดเก็บเอกสารของตัวเองจำนวนมากและใช้ไดเรกทอรี www หรือ “เวิลด์ไวด์เว็บ” สำหรับเนื้อหาที่พวกเขาต้องการ แบ่งปันกับผู้อื่น.

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

ในการทำเช่นนี้คุณจะต้องใช้โมดูล mod_rewrite ซึ่งอาจติดตั้งอยู่ในเว็บโฮสต์ของคุณอยู่แล้ว.

ตัวเลือก + FollowSymlinks
เขียนใหม่เปิด
RewriteCond% ^ www.example.com [NC]
เขียนซ้ำ ^ (. *) $ http://example.org/$1 [R = 301, NC]

ระวัง!

คู่มือ. htaccess และ mod_rewrite อื่น ๆ จำนวนมากเสนอการเปลี่ยนแปลงของรหัสต่อไปนี้เพื่อให้บรรลุสิ่งนี้:

ตัวเลือก + FollowSymlinks
เขียนใหม่เปิด
RewriteCond%! ^ example.com [NC]
เขียนซ้ำ ^ (. *) $ http://example.org/$1 [R = 301, NC]

คุณเห็นปัญหากับสิ่งนั้นหรือไม่?

มันเปลี่ยนเส้นทางโดเมนย่อยทั้งหมดไปยังโดเมนหลัก ดังนั้นไม่ใช่แค่ www.example.com แต่ยังรวมถึง blog.example.com และ admin.example.com และสิ่งอื่น ๆ นี่อาจไม่ใช่พฤติกรรมที่คุณต้องการ.

การเปลี่ยนเส้นทางไปที่ www

แต่ถ้าคุณใช้โดเมนย่อย www?

คุณควรตั้งค่าการเปลี่ยนเส้นทางเพื่อให้แน่ใจว่าผู้คนไปถึงที่ที่พวกเขาพยายามจะไป โดยเฉพาะอย่างยิ่งในตอนนี้ที่มีคนน้อยกว่าที่จะเพิ่ม www นั้นในจุดเริ่มต้นของ URL โดยอัตโนมัติ.

คุณเพียงแค่ย้อนกลับรหัสข้างต้น.

RewriteEngine On
RewriteCond% ^ example.com [NC]
RewriteRule ^ (. *) http://www.website.com/$1 [R = 301, NC]

ฉันควรเปลี่ยนเส้นทางข้อผิดพลาด 404 ไปที่โฮมเพจ?

คู่มือต่างๆเกี่ยวกับการเปลี่ยนเส้นทาง. htaccess รวมถึงคำแนะนำเกี่ยวกับวิธีการเปลี่ยนเส้นทางข้อผิดพลาด 404 ไปยังหน้าแรก.

นี่เป็นตัวอย่างที่ดีว่าคุณสามารถทำอะไรได้ไม่ได้หมายความว่าคุณควรทำอะไร.

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

เว็บไซต์ทั้งหมดควรมีหน้าเว็บ 404 ที่กำหนดเองซึ่งอธิบายให้ผู้ใช้ทราบอย่างชัดเจนว่าไม่พบเนื้อหาและมีคุณสมบัติการค้นหาบางอย่างเพื่อช่วยให้ผู้ใช้ค้นหาสิ่งที่ต้องการ.

เหตุใดจึงใช้. htaccess แทนที่จะเป็นทางเลือก?

คุณสามารถตั้งค่าการเปลี่ยนเส้นทางในไฟล์ PHP หรือใช้สคริปต์ฝั่งเซิร์ฟเวอร์ชนิดอื่น นอกจากนี้คุณยังสามารถตั้งค่าภายในระบบการจัดการเนื้อหาของคุณ (ซึ่งเป็นสิ่งเดียวกัน).

แต่การใช้. htaccess มักเป็นการเปลี่ยนเส้นทางประเภทที่เร็วที่สุด ด้วยการเปลี่ยนเส้นทางที่ใช้ PHP หรือภาษาสคริปต์ฝั่งเซิร์ฟเวอร์อื่น ๆ คำขอทั้งหมดจะต้องเสร็จสิ้นและสคริปต์แปลความจริงก่อนที่จะมีการส่งข้อความการเปลี่ยนเส้นทางไปยังเบราว์เซอร์.

ด้วยการเปลี่ยนเส้นทาง. htaccess เซิร์ฟเวอร์จะตอบกลับคำขอโดยตรงด้วยข้อความเปลี่ยนเส้นทาง มันเร็วกว่ามาก.

คุณควรทราบว่า – ระบบการจัดการเนื้อหาบางระบบจัดการการเปลี่ยนเส้นทางโดยการอัพเดท. htaccess แบบเป็นระบบ ตัวอย่างเช่น WordPress มีการเปลี่ยนเส้นทางปลั๊กอินที่ใช้วิธีนี้ (และระบบ URL ของ WP ก็ทำได้เช่นกัน)

สิ่งนี้ให้ประสิทธิภาพการใช้. htaccess โดยตรงในขณะเดียวกันก็ให้ความสะดวกในการจัดการจากภายในแอปพลิเคชันของคุณ.

การซ่อนไฟล์. htaccess ของคุณ: ข้อควรพิจารณาด้านความปลอดภัย

ไม่มีเหตุผลที่บางคนควรจะสามารถดูไฟล์. htaccess ของคุณได้จากเว็บ.

นอกจากนี้ยังมีสาเหตุใหญ่ที่คุณไม่ควรต้องการให้คนอื่นเห็นไฟล์. htaccess ของคุณ.

ปัญหาที่ใหญ่ที่สุดคือถ้าคุณใช้ไฟล์. htpasswd ตำแหน่งจะถูกสะกดในไฟล์. htaccess การรู้ตำแหน่งที่จะค้นหาทำให้ง่ายต่อการค้นหา.

นอกจากนี้ตามกฎทั่วไปคุณไม่ต้องการให้รายละเอียดเกี่ยวกับการติดตั้งสาธารณะ.

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

มันง่ายมากที่จะซ่อนไฟล์. htaccess ของคุณจากมุมมองสาธารณะ เพียงเพิ่มรหัสต่อไปนี้:

คำสั่งอนุญาต, ปฏิเสธ
ปฏิเสธจากทั้งหมด

การเปิดใช้งานประเภท MIME

ประเภท MIME เป็นประเภทไฟล์ พวกเขาเรียกว่าประเภท MIME เนื่องจากความสัมพันธ์ดั้งเดิมกับอีเมล (MIME ย่อมาจาก “ส่วนขยายจดหมายทางอินเทอร์เน็ตอเนกประสงค์”) พวกเขาไม่ได้เรียกว่า “ประเภทไฟล์” เพราะ MIME หมายถึงรูปแบบเฉพาะสำหรับการระบุประเภทไฟล์.

หากคุณเคยเขียนเอกสาร HTML เป็นไปได้ว่าคุณอาจระบุประเภท MIME แม้ว่าคุณจะไม่ทราบก็ตาม:

แอตทริบิวต์ type หมายถึงประเภท MIME ที่ระบุ.

ประเภท MIME บนเซิร์ฟเวอร์ของคุณ

บางครั้งคุณจะพบว่าเว็บเซิร์ฟเวอร์ของคุณไม่ได้รับการกำหนดค่าให้ส่งไฟล์ประเภทใดประเภทหนึ่ง มันใช้งานไม่ได้ – คำขอไฟล์ล้มเหลว.

ในกรณีส่วนใหญ่คุณสามารถแก้ไขปัญหานี้ได้โดยการเพิ่มประเภท MIME ให้กับไฟล์. htaccess ของคุณ.

AddType ข้อความ / richtext rtx

คำสั่งนี้มีสามส่วนแต่ละส่วนคั่นด้วยช่องว่าง:

  • คอมมานด์ AddType
  • ประเภท MIME
  • นามสกุลไฟล์.

หากคุณต้องการเชื่อมโยงหลายนามสกุลไฟล์ที่แตกต่างกันด้วยประเภท MIME เดียวกันคุณสามารถทำได้ในบรรทัดเดียว.

AddType image / jpeg jpeg jpg jpe JPG

บังคับให้ดาวน์โหลดตามประเภท MIME

หากคุณต้องการให้ลิงก์ทั้งหมดไปยังไฟล์บางประเภทเปิดใช้เป็นการดาวน์โหลดแทนที่จะเปิดในเบราว์เซอร์คุณต้องใช้แอปพลิเคชั่นประเภท MIME / octet-stream เช่นนี้

AddType application / octet-stream pdf

อีกครั้งคุณสามารถระบุนามสกุลไฟล์หลายไฟล์ด้วยประเภทเดียว:

แอปพลิเคชัน AddType / octet-stream pdf doc docx rtf

รายการนามสกุลไฟล์และประเภท MIME

นี่คือรายการรูปแบบไฟล์ที่ไม่สมบูรณ์และประเภท MIME ที่เกี่ยวข้อง.

หากคุณกำลังจัดการเว็บไซต์ของคุณเองและคุณรู้ว่าไฟล์ประเภทใดที่คุณเผยแพร่ทรัพยากรในนั้นไม่จำเป็นต้องวางรายการทั้งหมดนี้ลงในไฟล์. htaccess ของคุณ.

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

โดยเฉพาะอย่างยิ่งในกรณีที่คุณเรียกใช้ไซต์ที่ผู้คนอาจแชร์ไฟล์เป็นจำนวนมากโดยเฉพาะเช่นไซต์แชร์ไฟล์แอปพลิเคชันการจัดการโครงการ (ที่มักจะแนบไฟล์จำนวนมากกับโปรเจ็กต์) หรือเว็บแอปที่จัดการ อีเมล.

AddType application / macbinhex-40 hqx
AddType application / netalive net
AddType application / netalivelink nel
แอปพลิเคชัน AddType / octet-stream bin exe
แอปพลิเคชัน AddType / oda oda
แอปพลิเคชัน AddType / pdf pdf
แอปพลิเคชัน AddType / postscript ai eps ps
แอปพลิเคชัน AddType / rtf rtf
แอปพลิเคชัน AddType / x-bcpio bcpio
แอปพลิเคชัน AddType / x-cpio cpio
แอปพลิเคชัน AddType / x-csh csh
แอ็พพลิเคชัน AddType / x-Director dcr
AddType application / x-Director dir
แอปพลิเคชัน AddType / x-Director dxr
แอปพลิเคชัน AddType / x-dvi dvi
แอปพลิเคชัน AddType / x-gtar gtar
แอปพลิเคชัน AddType / x-hdf hdf
แอปพลิเคชัน AddType / x-httpd-cgi cgi
AddType application / x-latex latex
AddType application / x-mif mif
AddType application / x-netcdf nc cdf
แอปพลิเคชัน AddType / x-onlive sds
แอปพลิเคชัน AddType / x-sh sh
AddType application / x-shar shar
แอปพลิเคชัน AddType / x-sv4cpio sv4cpio
แอปพลิเคชัน AddType / x-sv4crc sv4crc
แอปพลิเคชัน AddType / x-tar tar
แอปพลิเคชัน AddType / x-tcl tcl
แอปพลิเคชัน AddType / x-tex tex
แอปพลิเคชัน AddType / x-texinfo texinfo texi
แอปพลิเคชัน AddType / x-troff t tr roff
แอปพลิเคชัน AddType / x-troff-man
แอปพลิเคชัน AddType / x-troff-me me
แอปพลิเคชัน AddType / x-troff-ms ms
AddType application / x-ustar ustar
แอ็พพลิเคชัน AddType / x-wais-source src
แอปพลิเคชัน AddType / zip zip
AddType เสียง / au snd พื้นฐาน
AddType เสียง / x-aiff aif aiff aifc
AddType audio / x-midi mid
AddType audio / x-pn-realaudio ram
AddType เสียง / x-wav wav
AddType ภาพ / gif gif GIF
AddType รูปภาพ / ief ief
AddType image / jpeg jpeg jpg jpe JPG
AddType ภาพ / TIFF TIFF
AddType image / x-cmu-raster ras
AddType อิมเมจ / x-portable-anymap pnm
AddType image / x-portable-bitmap pbm
AddType image / x-portable-graymap pgm
AddType image / x-portable-pixmap ppm
AddType image / x-rgb rgb
AddType image / x-xbitmap xbm
AddType image / x-xpixmap xpm
AddType image / x-xwindowdump xwd
AddType text / html html htm
AddType text / plain txt
AddType ข้อความ / richtext rtx
AddType ข้อความ / ค่าที่คั่นด้วยแท็บ tsv
AddType text / x-server-parsed-html shtml sht
AddType text / x-setext etx
AddType วิดีโอ / mpeg mpeg mpg mpe
AddType วิดีโอ / Quicktime qt mov
AddType วิดีโอ / x-msvideo avi
AddType วิดีโอ / ภาพยนตร์ x-sgi-movie
AddType x-world / x-vrml wrl

บล็อก Hotlinking

Hotlinking คือวิธีปฏิบัติในการเชื่อมโยงไปยังแหล่งข้อมูลจากโดเมนอื่นแทนที่จะอัปโหลดเนื้อหาไปยังเซิร์ฟเวอร์ของคุณและให้บริการด้วยตนเอง.

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


แต่ถ้าคุณขี้เกียจหรือพยายามประหยัดแบนด์วิดธ์หรือไม่รู้วิธีอัปโหลดไฟล์คุณสามารถฝังไฟล์นั้นเป็นไฟล์ต้นฉบับได้โดยตรง.

นั่นคือการเชื่อมโยง นอกจากนี้ยังเกิดขึ้นกับไฟล์ CSS และ JS แต่รูปภาพต่าง ๆ ที่พบบ่อยที่สุด.

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

ตัวอย่างเช่น JQuery มีไลบรารี JS ของพวกเขาผ่าน CDN (เครือข่ายการจัดส่งเนื้อหา) เพื่อให้คุณสามารถเชื่อมโยงไปยังโดยตรงโดยไม่ต้องอัปโหลดและให้บริการจากเซิร์ฟเวอร์ของคุณเอง.

แต่โฮสต์เว็บจำนวนมากพิจารณาว่าฮอตลิงค์เป็นรูปแบบของแบนด์วิดธ์และการขโมยทรัพยากร.

เพื่อให้แน่ใจว่าหากคุณใช้งานเว็บไซต์ที่มีขนาดค่อนข้างเล็กคุณไม่สามารถรับคำขอได้หลายพันหรือหลายหมื่นต่อวันสำหรับทรัพยากรที่ไม่มีส่วนเกี่ยวข้องกับผู้เข้าชมไซต์ของคุณ.

หากคุณมีปัญหากับ hotlinking คุณสามารถปิดการใช้งานโดยเพิ่มกฎ mod_rewrite ลงในไฟล์. htaccess ของคุณ.

เขียนใหม่เปิด
RewriteCond%! ^ $
RewriteCond%! ^ http: // (www.)? example.com /.*$ [NC]
RewriteRule. (gif | jpg | jpeg | png | js | css) $ – [F]

ให้แน่ใจว่าได้เปลี่ยน example.com ในบรรทัดที่สามเป็นชื่อโดเมนจริงของคุณ สิ่งนี้จะตรวจจับคำขอใด ๆ ที่ไม่ได้มาจากโดเมนของคุณจากนั้นตรวจสอบว่าตรงกับหนึ่งในนามสกุลไฟล์ที่ระบุในบรรทัดที่สี่หรือไม่ หากมีการแข่งขันการร้องขอล้มเหลว.

หากคุณต้องการเพิ่มนามสกุลไฟล์อื่น ๆ คุณสามารถแก้ไขบรรทัดสุดท้ายได้.

การแสดงเนื้อหาทางเลือก

หากคุณต้องการให้โลกรู้ว่าเหตุใด hotlinking ของพวกเขาจึงหยุดทำงานในทันทีคุณสามารถแทนที่รูปภาพ hotlinked ด้วยภาพพิเศษด้วยข้อความเช่น“ เราเกลียดการเชื่อมโยง!” หรือ“ เนื้อหาต้นฉบับมีอยู่ที่ http://example.com”.

แทนที่จะล้มเหลวในการร้องขอคุณเพียงแค่เปลี่ยนเส้นทางไปยังภาพ“ พิเศษ”:

เขียนใหม่เปิด
RewriteCond%! ^ $
RewriteCond%! ^ http: // (www.)? example.com /.*$ [NC]
RewriteRule. (gif | jpg) $ http://www.example.com/no-hotlinking.jpg [R, L]

หากคุณต้องการยุ่งกับผู้คนจริงๆคุณสามารถเปลี่ยนเส้นทาง JavaScript หรือไฟล์ CSS ไปยังทางเลือกพิเศษที่อาจมีผลกระทบที่น่าเสียดายสำหรับฮอตลิงค์เกอร์ อย่างไรก็ตามสิ่งนี้ไม่แนะนำ.

เขียนใหม่เปิด
RewriteCond%! ^ $
RewriteCond%! ^ http: // (www.)? example.com /.*$ [NC]
RewriteRule. (js) $ http://www.example.com/break-everything.js [R, L]

เขียนใหม่เปิด
RewriteCond%! ^ $
RewriteCond%! ^ http: // (www.)? example.com /.*$ [NC]
RewriteRule. (css) $ http://www.example.com/super-ugly.css [R, L]

ปิดการใช้งานหรือเปิดใช้งานดัชนี

จะเกิดอะไรขึ้นถ้าคุณมีไดเรกทอรีที่เต็มไปด้วยเอกสารหรือแหล่งข้อมูลอื่น ๆ ไม่มีไฟล์ index.html และไม่มีหน้าไดเรกทอรีเริ่มต้นที่ระบุไว้ในไฟล์. htaccess?

ในหลายกรณีผลลัพธ์จะเป็นรายการไดเรกทอรีทั่วไปของไฟล์ทั้งหมดในไดเรกทอรี.

ถูกตัอง. หากคุณมีโฟลเดอร์ในไดเรกทอรีโฮสติ้งของคุณที่มีข้อความ / ภาพและไม่มีหน้า index.html เมื่อมีคนนำทางไปยัง http://yousite.com/images พวกเขาจะสามารถดูรายการรูปภาพทั้งหมดใน เว็บไซต์.

นั่นเป็นพฤติกรรมเริ่มต้นของเว็บเซิร์ฟเวอร์ส่วนใหญ่และมันสมเหตุสมผลจากมุมมองของแนวคิดดั้งเดิมของเว็บไซต์ว่าเป็นสถานที่สำหรับเก็บและแบ่งปันเอกสาร แต่นี่ไม่ใช่พฤติกรรมที่ต้องการสำหรับเว็บไซต์ส่วนใหญ่.

ปิดการใช้งานดัชนี

บัญชีเว็บโฮสติ้งหลายแห่งจะปิดใช้งานสิ่งนี้เป็นส่วนหนึ่งของการกำหนดค่าทั่วโลก แต่ไม่ทั้งหมดทำ.

หากคุณต้องการปิดการใช้งานรายชื่อไดเรกทอรีที่สร้างขึ้นโดยอัตโนมัติการทำเช่นนั้นเป็นเรื่องง่าย:

ตัวเลือก -Indexes

เปิดใช้งานดัชนี

หากเว็บเซิร์ฟเวอร์ของคุณปิดการใช้งานดัชนีเป็นส่วนหนึ่งของการกำหนดค่าส่วนกลาง แต่คุณต้องการคุณสามารถเปิดใช้งานได้ด้วยการย้อนกลับคำสั่งด้านบน.

ตัวเลือก + ดัชนี

ซ่อนไฟล์บางไฟล์จากดัชนี

หากคุณต้องการแสดงรายชื่อไดเรกทอรี แต่คุณต้องการซ่อนไฟล์บางประเภทจากรายการคุณสามารถทำได้เช่นกัน.

IndexIgnore * .gif * .jpg

The * เป็น chracter แบบ wild-card คำสั่งด้านบนจะซ่อนไฟล์ทั้งหมดที่มีนามสกุล. gif หรือ. jpg หากคุณต้องการมีความเฉพาะเจาะจงมากขึ้นคุณสามารถ:

IndexIgnore secret-image.jpg

เปิดใช้งาน CGI ทุกที่

CGI หรือ Common Gateway Interface เป็นวิธีฝั่งเซิร์ฟเวอร์สำหรับการรวมสคริปต์ที่ไม่ใช่ HTML (เช่น Perl หรือ SSI) ในหน้าเว็บ.

โดยทั่วไปแล้วสคริปต์ CGI จะถูกเก็บไว้ในโฟลเดอร์ที่มีข้อความ / cgi-bin เว็บเซิร์ฟเวอร์ได้รับการกำหนดค่าให้ปฏิบัติต่อทรัพยากรใด ๆ ในไดเรกทอรีนั้นเป็นสคริปต์แทนที่จะเป็นหน้าเว็บ.

ปัญหาที่เป็นสองเท่า: URL ที่อ้างถึงทรัพยากร CGI จำเป็นต้องมี / cgi-bin / ในพวกเขาซึ่งวางรายละเอียดการใช้งานใน URL ของคุณ – รูปแบบการต่อต้านที่จะหลีกเลี่ยงด้วยเหตุผลหลายประการ.

เว็บไซต์ที่ซับซ้อนอาจต้องการโครงสร้างองค์กรที่ดีกว่าการมีสคริปต์จำนวนมากติดอยู่ในโฟลเดอร์เดียว / cgi-bin.

หากคุณต้องการให้เว็บเซิร์ฟเวอร์แยกวิเคราะห์สคริปต์ CGI ไม่ว่าจะอยู่ที่ใดในโครงสร้างไดเรกทอรีให้เพิ่มสิ่งต่อไปนี้ในไฟล์. htaccess ของคุณ:

AddHandler cgi-script .cgi
ตัวเลือก + ExecCGI

หากคุณมีนามสกุลไฟล์อื่นที่คุณต้องการประมวลผลเป็นสคริปต์ CGI คุณสามารถเพิ่มนามสกุลเหล่านั้นในบรรทัดแรก.

สคริปต์เป็นซอร์สโค้ด

ส่วนใหญ่คุณใส่สคริปต์ในสารบบเว็บของคุณเพราะคุณต้องการให้สคริปต์ทำงานเป็นสคริปต์.

แต่บางครั้งนั่นไม่ใช่สิ่งที่คุณต้องการ บางครั้งคุณต้องการแสดงซอร์สโค้ดแก่ผู้เข้าชมสาธารณะแทนที่จะเรียกใช้สคริปต์.

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

สิ่งนี้สามารถทำได้ในไฟล์. htaccess ของคุณโดยการลบตัวจัดการสคริปต์สำหรับไฟล์บางประเภทและแทนที่ด้วยตัวจัดการข้อความ.

RemoveHandler cgi-script .pl .cgi .php .py
AddType text / plain .pl .cgi .php .py

อีกวิธีหนึ่งดังกล่าวก่อนหน้านี้คุณสามารถบังคับให้ไฟล์ที่มี extensinos เหล่านี้ให้ดาวน์โหลดโดยอัตโนมัติแทนที่จะแสดง.

RemoveHandler cgi-script .pl .cgi .php .py
แอปพลิเคชัน AddType / octet-stream .pl .cgi .php .py

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

วิธีปฏิบัติที่ดีกว่าคือการวางสคริปต์ “แสดงอย่างเดียว” ทั้งหมดไว้ในไดเรกทอรีเดียวแล้ววางคำสั่งลงในไฟล์. htaccess ที่อยู่ในโฟลเดอร์นั้น.

การกำหนดการตั้งค่า PHP

บางครั้งคุณต้องปรับแต่งการตั้งค่าของ PHP วิธีที่เหมาะสมในการทำเช่นนี้คือในไฟล์ชื่อ php.ini.

น่าเสียดายที่ บริษัท เว็บโฮสติ้งบางแห่งไม่อนุญาตให้ลูกค้าแก้ไขไฟล์ php.ini นี่เป็นเรื่องจริงโดยเฉพาะกับผู้ให้บริการโฮสติ้งที่ใช้ร่วมกันซึ่งการติดตั้ง PHP เพียงครั้งเดียวอาจใช้งานเว็บไซต์หลายร้อยแห่ง.

โชคดีที่มีวิธีแก้ปัญหา – คุณสามารถฝังกฎ php.ini ลงในไฟล์. htaccess ของคุณ.

ไวยากรณ์ดูเหมือนว่า:

php_value [ชื่อการตั้งค่า] [ค่า]

ตัวอย่างเช่นหากคุณต้องการเพิ่มขนาดการอัปโหลดไฟล์สูงสุด (ปัญหาทั่วไป) มันง่ายพอ ๆ กับ:

php_value upload_max_filesize 10M

ไม่สามารถระบุการตั้งค่า PHP ทั้งหมดในไฟล์. htaccess ตัวอย่างเช่นคุณไม่สามารถปิดการใช้งานชั้นเรียนด้วยวิธีนี้.

สำหรับรายการทั้งหมดของการตั้งค่า php.ini ทั้งหมดให้ดูคำแนะนำอย่างเป็นทางการของ php.ini.

วิธีป้องกันการเข้าถึง PHP ของคุณรวมถึงไฟล์ต่างๆ

มีหลายวิธีในการป้องกันการเข้าถึงไฟล์ PHP ของคุณโดยไม่ได้รับอนุญาต.

ก่อนอื่นคุณสามารถใส่พวกเขาไว้ในไดเรกทอรีและตั้งค่าไฟล์. htaccess ของคุณเพื่อปฏิเสธการเข้าถึงไดเรกทอรีนั้นทั้งหมด (เช่นปฏิเสธจากทั้งหมดหากคุณใช้ Apache HTTP Server) หากมีคนพยายามเข้าถึงไฟล์พวกเขาจะได้รับ HTTP 403 ถูกห้าม คำตอบ.

หรือคุณสามารถจัดเก็บไฟล์เหล่านี้นอกไดเรกทอรีที่ให้บริการไฟล์เว็บไซต์ของคุณ นั่นคือถ้าเว็บเซิร์ฟเวอร์ของคุณกำลังให้บริการไฟล์ที่อยู่ / srv / home, คุณสามารถวางไฟล์รวมไว้ใน / srv / home / รวมถึง. ซึ่งทำให้ไฟล์ไม่สามารถเข้าถึงได้ผ่าน URL แม้ว่าคุณจะสามารถเข้าถึงและใช้งานได้ดังต่อไปนี้: รวม ‘PATH_TO_YOUR_FILE’

สุดท้ายคุณสามารถกำหนดค่าคงที่ URL สำหรับไฟล์ที่คุณต้องการเข้าถึงได้:

define (‘WEBSITE_URL’, ‘http://example.com’);

จากนั้นสำหรับไฟล์ที่คุณไม่ต้องการเข้าถึงให้รวมการตรวจสอบต่อไปนี้:

ถ้า (! ถูกกำหนด (‘WEBSITE_URL’)) {
ส่วนหัว ($ _ SERVER ["SERVER_PROTOCOL"] . "403 ต้องห้าม");
ออกจาก;
}

วิธีป้องกันการเข้าถึงไฟล์ PHP ini ของคุณ

วิธีป้องกันการเข้าถึงไฟล์ ini ของคุณโดยไม่ได้รับอนุญาตคือการแก้ไขไฟล์. htaccess ของคุณเพื่อปฏิเสธการเข้าถึงไฟล์ ini (เช่นปฏิเสธจากทั้งหมดหากใช้ Apache).

วิธีตั้งค่าเขตเวลาของเซิร์ฟเวอร์ของคุณ

คุณสามารถตั้งค่าเขตเวลาของเซิร์ฟเวอร์โดยระบุในไฟล์. htaccess ของคุณ ในการทำเช่นนั้นคุณจะต้องเพิ่มบรรทัดต่อไปนี้:

php_value date.timezone ‘ภูมิภาค / โซน’

ตรวจสอบให้แน่ใจว่าได้แทนที่ภูมิภาค / โซนด้วยเขตเวลาที่คุณต้องการ.

บันทึกไฟล์ของคุณ คุณสามารถทดสอบการเปลี่ยนแปลงของคุณได้โดยสร้างไฟล์ทดสอบ PHP ที่มีรายการต่อไปนี้ในไดเรกทอรีเดียวกันกับไฟล์. htaccess:

<?php phpinfo (); ?>

โหลดไฟล์ในเบราว์เซอร์ของคุณและค้นหาชื่อของคำสั่ง – คอลัมน์มูลค่าท้องถิ่นควรแสดงการตั้งค่าเขตเวลาใหม่ของคุณ.

เมื่อไม่ใช้. htaccess

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

น่าเสียดายที่พลังนี้สามารถไปที่หัวของคุณและคุณอาจพบว่าตัวเองกำลังใช้ไฟล์. htaccess ด้วยวิธีที่ไม่ดีที่สุดจริงๆ.

เมื่อคุณต้องการทำสิ่งที่ดูเหมือนเป็นงาน. htaccess โดยทั่วไปมีสองสถานการณ์ที่คุณควรวางคำสั่งนั้นไว้ที่อื่น.

เพิ่มเติมต้นน้ำ

เมื่อใดก็ตามที่เป็นไปได้ประเภทของคำสั่งที่คุณสามารถวางในไฟล์. htaccess จะดีกว่าหากอยู่ในไฟล์ httpd.conf ซึ่งเป็นไฟล์การตั้งค่าการกำหนดค่าสำหรับเซิร์ฟเวอร์ทั้งหมด.

ในทำนองเดียวกันการตั้งค่า PHP อย่างถูกต้องอยู่ในไฟล์ php.ini และภาษาอื่น ๆ ส่วนใหญ่มีไฟล์การตั้งค่าที่คล้ายกัน.

การวางคำสั่งต้นน้ำเพิ่มเติมใน httpd.conf, php.ini หรือไฟล์การกำหนดค่าเฉพาะภาษาอื่น ๆ ช่วยให้การตั้งค่าเหล่านั้นเป็น “การอบเข้า” กับเครื่องมือวิเคราะห์คำของเว็บเซิร์ฟเวอร์ ด้วย. htaccess คำสั่งจะต้องถูกตรวจสอบและตีความกับคำขอทุกครั้ง.

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

น่าเสียดายที่ผู้ให้บริการโฮสต์ที่ใช้ร่วมกันจำนวนมากไม่อนุญาตให้ลูกค้าเข้าถึงไฟล์ httpd.conf หรือ php.ini บังคับให้ผู้ใช้พึ่งพาไฟล์. htaccess ที่ช้ากว่า.

สิ่งนี้ให้โทษสองเท่าเมื่อเปรียบเทียบกับการกำหนดค่า VPS แบบกำหนดเองเนื่องจากโฮสติ้งที่ใช้ร่วมกันโดยทั่วไปยังใช้พลังงานต่ำ นี่คือหนึ่งในเหตุผลที่ไซต์ที่มีทราฟฟิกที่น่านับถือควรอยู่ในแผน VPS แทนแผนการโฮสต์ที่ใช้ร่วมกัน.

ปลายน้ำต่อไป

หากคุณใช้ Content Management System (CMS) ที่ดีเช่น WordPress หรือ Drupal สิ่งที่คุณอาจทำในไฟล์. htaccess เช่น URL เปลี่ยนเส้นทางหรือบล็อกที่อยู่ IP สามารถทำได้จากภายในแอปพลิเคชัน.

บ่อยครั้งสิ่งนี้จะทำงานร่วมกับไฟล์. htaccess โดยแอปพลิเคชันจะเพิ่มคำสั่งโดยทางโปรแกรม.

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

การแก้ไขปัญหา

การยุ่งกับไฟล์. htaccess ของคุณนั้นยอดเยี่ยม แต่ก็อาจทำให้เซิร์ฟเวอร์ของคุณยึดและเริ่มส่งข้อความ 500 Internal Server Error.

นี่คือแนวคิดบางประการที่จะช่วยคุณในเรื่องดังกล่าว.

ทำสิ่งหนึ่งในเวลา

สิ่งนี้ควรดำเนินไปโดยไม่บอก แต่น่าเศร้าที่มันเป็นบทเรียนที่พวกเราหลายคนต้องเรียนรู้ซ้ำแล้วซ้ำอีก.

ทำสิ่งหนึ่ง จากนั้นทดสอบ จากนั้นทำสิ่งอื่น ทดสอบว่า.

หากคุณทำหลายอย่างพร้อมกันแล้วมีบางอย่างล้มเหลวคุณจะไม่ทราบว่าคำสั่งใดทำให้เกิดปัญหา.

สำรองไฟล์ของคุณก่อนการดำเนินการแต่ละอย่าง

นอกเหนือจากการทำสิ่งเดียวในแต่ละครั้งคุณควรบันทึกไฟล์ระหว่างสิ่งที่คุณพยายามทำ ไฟล์เก็บถาวรที่คุณบันทึกไว้จะต้องสามารถเรียกคืนได้ นี่ไม่ใช่ Microsoft Word ที่คุณสามารถเลิกทำได้ – คุณต้องมีสำเนาไฟล์ที่บันทึกไว้.

คุณควรมีรุ่นล่าสุดที่ใช้งานได้ในกรณีที่คุณทำอะไรผิดพลาด มีความสามารถในการกู้คืนเป็นเวอร์ชันที่ใช้งานได้เสมอ.

นี่เป็นวิธีที่ง่ายที่สุดถ้าคุณใช้ระบบการจัดการแหล่งเช่น git คุณสามารถคอมมิชชันหลังจากการเปลี่ยนแปลงแต่ละครั้งและย้อนกลับหากคุณพบปัญหาใด ๆ.

ตรวจสอบบันทึกข้อผิดพลาด

หากคุณพบปัญหาและคุณประสบปัญหาในการหาสาเหตุให้ตรวจสอบบันทึกข้อผิดพลาด Apache ของคุณ สิ่งเหล่านี้มักจะให้ข้อมูลที่มีค่าเกี่ยวกับสถานที่ที่จะมอง.

ใช้ฟอรัมนักพัฒนาซอฟต์แวร์เพื่อรับความช่วยเหลือ

ฟอรัมนักพัฒนาและ Q&เว็บไซต์อย่าง StackOverflow เป็นเครื่องมือที่มีค่ายิ่งสำหรับนักพัฒนาและผู้ดูแลระบบที่มีประสบการณ์มากที่สุด และอย่าลืม Google บ่อยครั้งที่ความแตกต่างระหว่างเว็บมาสเตอร์ที่ไม่ดีและผู้เชี่ยวชาญที่ยอดเยี่ยมนั้นไม่ได้รู้คำตอบ แต่รู้ว่าจะหาคำตอบได้ที่ไหน.

ปัญหาทั่วไป. htaccess

บางครั้งคุณพิมพ์ผิด บางครั้งคุณมีปัญหาลึกลับและความสับสนที่เกิดจากการบรรจบกันของปัจจัยที่คาดเดาไม่ได้.

ปัญหาส่วนใหญ่และสิ่งที่น่าผิดหวังจริงๆคือปัญหาที่อยู่ตรงกลาง – ปัญหาง่าย ๆ ในชีวิตประจำวันที่ง่ายต่อการแก้ไขหากคุณเพิ่งรู้เกี่ยวกับพวกเขา.

นี่คือบางส่วน.

ชื่อไฟล์ไม่ถูกต้อง

มีเพียงวิธีเดียวในการสะกด. htaccess – ต้องเริ่มต้นด้วยจุดและต้องเป็นตัวอักษรพิมพ์เล็กทั้งหมด.

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

.htaccess Disabled หรือ Disabled บางส่วน

ผู้ให้บริการโฮสต์ที่ใช้ร่วมกันบางรายปิดใช้งาน. htaccess โดยสิ้นเชิง คนอื่น ๆ ยอมให้ แต่ จำกัด การใช้คำสั่งบางอย่างพวกเขาจะไม่สนใจถ้ารวมอยู่ด้วย.

ในทำนองเดียวกันแม้ในแผน VPS หรือเซิร์ฟเวอร์เฉพาะของคุณเอง. htaccess อาจถูกปิดใช้งาน.

หากคุณสามารถเข้าถึงไฟล์ httpd.conf หรือการตั้งค่าเซิร์ฟเวอร์อื่น ๆ คุณสามารถตรวจสอบด้วยตัวเอง หากคุณพบคำสั่ง AllowOverride None คุณจะพบผู้ร้าย แทนที่ด้วย AllowOverride All.

หากคุณไม่สามารถเข้าถึงไฟล์ httpd.conf ของคุณ (เช่นคุณอยู่บนโฮสติ้งที่ใช้ร่วมกัน) คุณอาจต้องติดต่อฝ่ายสนับสนุนด้านเทคนิคของ บริษัท โฮสติ้งของคุณและดูว่าพวกเขาสามารถเปิดใช้งานได้หรือไม่ เพราะเพื่อบรรลุสิ่งที่คุณพยายามทำในวิธีที่ต่างออกไป.

คำสั่งที่ขัดแย้งหรือแทนที่

หากคุณมีหลายไดเรกทอรีที่ซ้อนกันอาจเป็นไปได้ที่แต่ละไดเรกทอรีจะมีไฟล์. htaccess ของตนเอง ไฟล์. htaccess ทุกไฟล์จากรูทผ่านแต่ละไดเร็กทอรีที่ซ้อนกันจะถูกนำมาใช้ – ไฟล์เหล่านี้จะถูกอ่านตามลำดับจากมากไปน้อยแผนผังไดเรกทอรี.

หากคุณตั้งค่าบางอย่างในไดเรกทอรีรากของคุณแล้วบางสิ่งในไดเรกทอรีย่อยจะแทนที่คำสั่งในไฟล์. htaccess ที่อยู่ใกล้กับไฟล์ที่ร้องขอจะมีความสำคัญมากกว่า.

ดูโกงแผ่นดัดแปลงของเรา!

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

  • ไฟล์. htaccess ใน SEO คืออะไร?

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

    นอกจากนี้คุณสามารถใช้. htaccess เพื่อออกนโยบาย slash ต่อท้ายที่สอดคล้องกัน เมื่อรวมกับกฎ www และ HTTPS สามารถช่วยคุณหลีกเลี่ยงเนื้อหาที่ซ้ำกันซึ่ง Google สามารถลงโทษได้.

  • ฉันจะสร้างไฟล์. htaccess ใน WordPress ได้อย่างไร?

    ในการสร้างไฟล์. htaccess ใน WordPress ให้ใช้รหัสนี้:

    # BEGIN WordPress

    RewriteEngine On
    RewriteBase /
    RewriteRule ^ index \ .php $ – [L]
    RewriteCond% {REQUEST_FILENAME}! -f
    RewriteCond% {REQUEST_FILENAME}! -d
    RewriteRule /index.php [L]

    # END WordPress

    โปรดทราบว่าเมื่อคุณติดตั้ง WordPress ไฟล์. htaccess จะถูกสร้างขึ้นโดยอัตโนมัติ อย่างไรก็ตามปลั๊กอินที่ผิดพลาดอาจทำให้ไฟล์. htaccess เสียหายได้ทำให้จำเป็นต้องสร้างไฟล์ขึ้นใหม่.

  • ทำไมฉันไม่เห็นไฟล์. htaccess ของฉัน?

    หากคุณไม่เห็นไฟล์. htaccess เป็นเพราะไม่มีไฟล์อยู่หรือซ่อนอยู่ หากต้องการบังคับให้ไคลเอนต์ FTP แสดงไฟล์เหล่านี้คุณจะต้องเปลี่ยนการตั้งค่าไคลเอนต์ (เช่นใน FileZilla ให้ไปที่ เซิร์ฟเวอร์ > บังคับให้แสดงไฟล์ที่ซ่อน) หากคุณทำการเปลี่ยนแปลงนี้แล้ว แต่คุณยังไม่เห็น. htaccess คุณจะต้องสร้างใหม่อีกครั้ง.

  • ฉันควรมีไฟล์. htaccess กี่ไฟล์?

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

  • อยู่ที่ไหน. htaccess ใน cPanel?

    หากต้องการดูไฟล์. htaccess ให้เข้าสู่บัญชี cPanel ของคุณ จากนั้นไปที่ ไฟล์ > ตัวจัดการไฟล์. เมื่อถูกขอให้เลือกไดเรกทอรีให้เลือก เว็บรูท และตรวจสอบให้แน่ใจว่า แสดงไฟล์ที่ซ่อน มีการตรวจสอบ ตอนนี้คุณควรจะสามารถดูไฟล์. htaccess ใน cPanel ได้แล้ว.

  • การใช้ไฟล์. htaccess ใน CodeIgniter คืออะไร?

    ไฟล์. htaccess สามารถใช้ร่วมกับ CodeIgniter เพื่อสร้าง URL ที่เป็นมิตรกับเครื่องมือค้นหา โดยค่าเริ่มต้น URL ของ CodeIgniter จะรวมไฟล์ index.php โดยใช้. htaccess คุณสามารถลบไฟล์ index.php ที่เป็นค่าเริ่มต้นเพื่อที่จะไม่ปรากฏใน URL แอปพลิเคชันทั้งหมดของคุณ.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me