ไฟล์ htaccess: แอปพลิเคชัน การรวม การกำหนดค่า .htaccess คืออะไรและจะสร้างได้อย่างไร วิธีสร้างไฟล์ htaccess ใน windows

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

ลักษณะเฉพาะของไฟล์คือไม่มีชื่อ แต่มีนามสกุลเท่านั้น นี่เป็นบรรทัดฐานสำหรับ ระบบยูนิกซ์แต่ใน Windowsนี้ไม่ได้ค่อนข้างเป็นบรรทัดฐาน ดังนั้น, ขั้นตอนการสร้าง .htaccessต่อไป:

  1. เปิด โปรแกรมแก้ไขข้อความ (แผ่นจดบันทึก++หรือแม้แต่ปกติ สมุดบันทึก).
  2. ในเมนู " ไฟล์" เลือก " บันทึกเป็น".
  3. ในรายการแบบหล่นลง ประเภทไฟล์" เลือก " เอกสารทั้งหมด".
  4. ป้อนเป็นชื่อ " .htaccess" (แน่นอนไม่มีเครื่องหมายคำพูด)
  5. คลิกที่ปุ่ม " บันทึก".

สำหรับผู้เริ่มต้นฉันจะเพิ่มบางอย่าง ในไฟล์นี้ คุณต้องลงทะเบียนการเข้ารหัสไซต์ทันที ถ้านี้ UTF-8:

AddDefaultCharset UTF-8

ถ้านี้ windows-1251:

AddDefaultCharset CP1251

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

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

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

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

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

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

จะตรวจสอบได้อย่างไรว่า .htaccess ใช้งานได้?

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

แก้ไขการเปลี่ยนเส้นทาง 301 ผ่าน .htaccess file

สำคัญ! หากคุณต้องการให้การเปลี่ยนเส้นทางของคุณทำงาน คุณต้องเขียนก่อนบรรทัดที่แนะนำด้านล่างในข้อความ

301 เปลี่ยนเส้นทางจากหน้าหนึ่งไปยังอีกหน้าหนึ่ง (หรือเว็บไซต์)

เมื่อต้องการทำสิ่งนี้ ให้เพิ่มบรรทัดต่อไปนี้ในไฟล์ .htaccess:

เปลี่ยนเส้นทาง 301 /old-page.html http://site.rf/new-page.html

RedirectPermanent /old-page.html http://site.rf/new-page.html

301 เปลี่ยนเส้นทางจากเว็บไซต์ www ไปยังไซต์ที่ไม่มี www

ตัวอย่างเช่น การเปลี่ยนเส้นทางจาก http://www.site.com ไปยัง http://site.com นี่เป็นสิ่งที่มีประโยชน์มาก มักใช้ใน SEO

ตัวเลือก +FollowSymLinks
Rewrite Engine เปิด
RewriteCond %(HTTP_HOST) ^www.domain\.com$
RewriteRule ^(.*)$ http://domain.com/$1

ย้อนกลับการเปลี่ยนเส้นทางจากโดเมนที่ไม่มี www ไปยังโดเมนที่มี www

เปลี่ยนเส้นทางจาก http://site.com ไปยัง http://www.site.com (ไม่แนะนำ)

ตัวเลือก +FollowSymLinks
Rewrite Engine เปิด
RewriteCond %(HTTP_HOST) ^domain\.com$
RewriteRule ^(.*)$ http://www.domain.com/$1

เปลี่ยนเส้นทางผู้เยี่ยมชมทั้งหมดจากเว็บไซต์เก่าไปยังเว็บไซต์ใหม่

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

จะเพิ่ม .html ต่อท้าย URL ได้อย่างไร

หากต้องการเปลี่ยนเส้นทางไปที่ site.com/page.html เมื่อคุณเข้าสู่ site.com/page หรือ site.com/page/ ให้เขียนข้อความต่อไปนี้ใน .htaccess:

RewriteCond %(REQUEST_URI) (.*/[^/.]+)($|\?)
RewriteRule .* %1.html
RewriteRule ^(.*)/$/$1.html

จะลบ .html ออกจากส่วนท้ายของ URL ได้อย่างไร

ย้อนกลับการเปลี่ยนเส้นทางจาก site.com/page.html ไปยัง site.com/page

รีไรท์เบส /
RewriteRule(.*)\.html$ $1

จะลบเครื่องหมายทับที่ท้าย URL ได้อย่างไร

ตัวอย่างเช่น มันคือ site.com/page/ กลายเป็น site.com/page

RewriteCond %(REQUEST_FILENAME) !-d
RewriteRule ^(.+)/$ /$1

301 เปลี่ยนเส้นทางจากส่วนหนึ่งไปยังส่วนอื่น?

เปลี่ยนเส้นทางหน้าทั้งหมดในส่วนหนึ่ง site.com/razdel-1/razdel-2/page ไปยังหน้าของส่วนอื่น site.com/razdel-1/page

RewriteRule ^blog/raznoe/(.*)$ http://site.ru/blog/$1

301 Redirect เมื่อย้ายจากโดเมนเก่าไปยังโดเมนใหม่

กฎต่อไปนี้จะเปลี่ยนเส้นทางผู้เยี่ยมชมจากแต่ละหน้าของไซต์เก่าไปยังหน้าเดียวกันบนไซต์ใหม่อย่างถูกต้อง เช่น จาก oldsite.com/page ถึง newsite.com/page

RewriteCond %(HTTP_HOST) ^www.oldsite.com$
RewriteCond %(HTTP_HOST) ^test.oldsite.com$
RewriteRule ^(.*)$ http://newsite.com/$1

เปลี่ยนหน้าแสดงข้อผิดพลาดอย่างถูกต้องผ่าน .htaccess

เมื่อผู้ใช้ต้องการดูไซต์ (ส่งคำขอไปยังเซิร์ฟเวอร์โฮสต์) เซิร์ฟเวอร์จะตอบกลับด้วยรหัส รหัส 1-399 ระบุการทำงานปกติของเซิร์ฟเวอร์ และรหัส 400-599 ระบุข้อผิดพลาดของเซิร์ฟเวอร์ (ดูบทความพิเศษสำหรับรหัสข้อผิดพลาดทั้งหมด) ตัวอย่างเช่น หากเซิร์ฟเวอร์ที่มีเว็บไซต์ของคุณทำงานหนักเกินไปหรือกำลังรีบูต ผู้ใช้จะเห็นข้อความที่เข้าใจยากสำหรับเขา (เช่น 500 Internal Server Error) คิดว่าเว็บไซต์จะไม่ทำงานอีกต่อไปและจะไม่กลับมาอีก กับมัน เพื่อแสดงหน้าแยกของคุณแทนหน้าแสดงข้อผิดพลาดมาตรฐาน (ผู้ใช้เข้าใจยาก) ซึ่งตัวอย่างเช่นจะมีข้อความระบุว่าไซต์หยุดทำงานชั่วคราว แต่จะคืนค่าการทำงานในภายหลังและคุณควรอย่างแน่นอน กลับไปที่มัน (ไซต์ KinoPoisk จะแสดงข้อความเมื่อเซิร์ฟเวอร์โอเวอร์โหลด "The Matrix is ​​​​Reloading..." และรูปภาพที่เกี่ยวข้อง) วิธีแก้ปัญหาที่พบบ่อยที่สุดคือการเขียน เพจของตัวเองแทนที่จะเป็นข้อผิดพลาด 404 มาตรฐาน ข้อผิดพลาดนี้จะแสดงให้ผู้ใช้เห็นหากมีการป้อนที่อยู่เพจที่ไม่มีอยู่ ผู้ดูแลเว็บคิดว่าจะสร้างหน้าของตนเองขึ้นมาแทนหน้ามาตรฐานที่เข้าใจยาก โดยเขียนว่ามีคนคลิกลิงก์ที่ไม่มีอยู่จริง และเสนอให้ค้นหาข้อมูลที่จำเป็นในเว็บไซต์และไม่ปล่อยทิ้งไว้ ดูตัวอย่างหน้า 404 ของเราได้ หากต้องการแสดงหน้าข้อผิดพลาดของคุณเองให้ผู้ใช้เห็นแทนที่จะเป็นหน้ามาตรฐาน คุณต้องสร้างหน้าแยกต่างหาก (เช่น http://yoursite.com/404.html) และเพิ่มโค้ดที่เหมาะสมลงในไฟล์ .htaccess นี่คือตัวอย่าง ของรหัสที่คุณต้องเพิ่ม:

ErrorDocument 400 http://yoursite.com/400.html
ErrorDocument 404 http://yoursite.com/404.html
ErrorDocument 500 http://yoursite.com/500.html

หากคุณต้องการแทนที่หน้าอื่นแทนข้อผิดพลาด 403 คุณต้องระบุข้อความที่จะแสดงด้วย ตัวอย่างเช่น

ErrorDocument 403 "ขออภัยไม่สามารถให้คุณเข้าถึงได้ในวันนี้ แล้วพบกันใหม่ alligator :)"

การตั้งค่าความปลอดภัยของเว็บไซต์ผ่าน .htaccess file

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

การป้องกันเว็บไซต์จากการแทรกสคริปต์

#เปิดใช้งานการติดตามลิงก์ซิม
ตัวเลือก +FollowSymLinks
#เริ่ม url_rewrite
Rewrite Engine เปิด
#บล็อกลิงก์ทั้งหมดที่มี ‹script›
RewriteCond %(QUERY_STRING) (\<|%3C).*script.*(\>|%3E)
# บล็อกสคริปต์ทั้งหมดที่พยายามเปลี่ยน ตัวแปร PHPโกลบอล:
RewriteCond %(QUERY_STRING) GLOBALS(=|\[|\%(0,2))
# บล็อกสคริปต์ทั้งหมดที่พยายามเปลี่ยนตัวแปร _REQUEST:
RewriteCond %(QUERY_STRING) _REQUEST(=|\[|\%(0,2))
#Redirects ความพยายามดังกล่าวทั้งหมดไปยังหน้าข้อผิดพลาด 403 - ต้องห้าม
RewriteRule ^(.*)$ index.php

วิธีป้องกันเว็บไซต์ของคุณจากการโจรกรรมภาพ

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

ตัวเลือก +FollowSymlinks
#ห้ามขโมยภาพ
Rewrite Engine เปิด
RewriteCond %(HTTP_REFERER) !^$
RewriteCond %(HTTP_REFERER) !^http://(www.)?yoursite.com/
RewriteRule .*.(gif|jpg|png)$ http://yoursite.com/images/stop_stealing.gif

yoursite.com - ที่อยู่เว็บไซต์ของคุณ
http://yoursite.com/images/stop_stealing.gif เป็นเส้นทางสู่รูปภาพที่คุณต้องสร้างขึ้นเอง ปกติจะเขียนว่า "อย่าขโมยรูปจากเว็บไซต์ของคนอื่น" หรืออะไรทำนองนั้น

จะบล็อกการเข้าถึงไซต์สำหรับผู้ใช้ด้วย IP ได้อย่างไร

มันถูกใช้กับผู้ส่งอีเมลขยะและความไม่เพียงพออื่น ๆ ในบางครั้งเพื่อป้องกันการโจมตีของแฮ็กเกอร์

#ป้อนที่อยู่ IP ที่ไม่ต้องการที่นี่
อนุญาตจากทุกคน
ปฏิเสธจาก 164.186.15.116
ปฏิเสธจาก124.153.34.144

จะบล็อกการเข้าถึงไซต์สำหรับ IP ทั้งหมดยกเว้นที่ตรวจสอบแล้วได้อย่างไร

หากต้องการบล็อกการเข้าถึงสำหรับทุกคนยกเว้นที่อยู่ IP ที่ระบุ ให้เพิ่มรหัสต่อไปนี้:

#ปฏิเสธการเข้าถึงทั้งหมดยกเว้นที่อยู่ IP ที่ระบุ
ErrorDocument 403 http://www.yoursite.com
คำสั่ง ปฏิเสธ อนุญาต
ปฏิเสธทั้งหมด
อนุญาตตั้งแต่ 164.186.15.116
อนุญาตตั้งแต่ 124.153.34.144

วิธีป้องกันการดูเนื้อหาของโฟลเดอร์เฉพาะ

#ห้ามดูเนื้อหาในโฟลเดอร์
ตัวเลือก ดัชนีทั้งหมด

ปฏิเสธการเข้าถึงไฟล์เฉพาะ

#ปกป้องไฟล์ myfile.txt

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

ปฏิเสธการเข้าถึงไฟล์ทั้งหมดที่มีนามสกุลเฉพาะ

ตัวอย่างเช่น ในการปฏิเสธการเข้าถึงไฟล์ .txt ทั้งหมด เราเขียนสิ่งนี้:


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

การบล็อกตัวแทนผู้ใช้ที่ไม่จำเป็น

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

#บล็อกตัวแทนผู้ใช้ต่อไปนี้
SetEnvIfNoCase ตัวแทนผู้ใช้ ^ FrontPage
SetEnvIfNoCase ตัวแทนผู้ใช้ ^Java.*
SetEnvIfNoCase ตัวแทนผู้ใช้ ^Microsoft.URL
SetEnvIfNoCase ตัวแทนผู้ใช้ ^MSFrontPage
SetEnvIfNoCase ตัวแทนผู้ใช้ ^Offline.Explorer
SetEnvIfNoCase ตัวแทนผู้ใช้ ^ebandit
SetEnvIfNoCase ตัวแทนผู้ใช้ ^Zeus

สั่งอนุญาต ปฏิเสธ
อนุญาตจากทุกคน
ปฏิเสธจาก env=bad_bot

การเปลี่ยนการเข้ารหัสไซต์ผ่าน .htaccess

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

UTF-8 - ชุดอักขระไบต์คู่สากล
Windows-1251 - ซิริลลิก (Windows)
KOI8-r - ซิริลลิก (KOI8-R)
cp866 - ซิริลลิก (DOS)
Windows-1250 - ยุโรปกลาง (Windows)
Windows-1252 - ยุโรปตะวันตก (Windows)

นอกจากนี้ ต้องระบุการเข้ารหัสในเมตาแท็กของแต่ละหน้าของไซต์ ซึ่งจะบอกให้เบราว์เซอร์ทราบว่ามีการเข้ารหัสใดบ้างที่ไซต์ทำขึ้น

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

AddDefaultCharset WINDOWS-1251

หากทั้งสองตัวเลือกใช้งานได้ (ทั้งเมตาแท็กและไฟล์ .htaccess) การเข้ารหัสในตัวเลือกเหล่านั้นจึงเป็นสิ่งสำคัญมาก

นอกจากนี้ยังเป็นไปได้ที่เซิร์ฟเวอร์จะแปลงไฟล์ทั้งหมดที่อัปโหลดไปยังเซิร์ฟเวอร์โดยอัตโนมัติ:

หากต้องการปิดการบันทึกเซิร์ฟเวอร์ คุณต้องป้อน:

การเพิ่มประสิทธิภาพเว็บไซต์ผ่าน .htaccess

เร่งความเร็วเว็บไซต์ด้วย Gzip

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


AddOutputFilterByType ข้อความ/html ข้อความ/ข้อความธรรมดา/แอปพลิเคชัน xml/แอปพลิเคชัน xml/xhtml+xml ข้อความ/ข้อความจาวาสคริปต์/แอปพลิเคชัน css/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0 no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html

mod_gzip_on ใช่
mod_gzip_item_include ไฟล์ \.js$
mod_gzip_item_include ไฟล์ \.css$

ขนาดไฟล์ETag MTime


หมดอายุเปิดใช้งานเมื่อ



mod_gzip_on ใช่
mod_gzip_dechunk ใช่
mod_gzip_item_include ไฟล์ \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include ตัวจัดการ ^cgi-script$
mod_gzip_item_include mime ^ข้อความ/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^การเข้ารหัสเนื้อหา:.*gzip.*

จะปรับปรุงการแคชเว็บไซต์บนเซิร์ฟเวอร์ได้อย่างไร?

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


หมดอายุ Active On
ExpiresByType application/javascript "การเข้าถึงบวก 7 วัน"
ExpiresByType text/javascript "การเข้าถึงบวก 7 วัน"
ExpiresByType text/css "การเข้าถึงบวก 7 วัน"
ExpiresByType image/gif "การเข้าถึงบวก 7 วัน"
ExpiresByType image/jpeg "การเข้าถึงบวก 7 วัน"
ExpiresByType image/png "การเข้าถึงบวก 7 วัน"
ขนาดไฟล์ETag MTime


หมดอายุเปิดใช้งานเมื่อ
ExpiresDefault "การเข้าถึงบวก 1 เดือน"

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

การเปลี่ยนหน้าหลัก (ดัชนี) ของเว็บไซต์

ตามกฎแล้วเมื่อเข้าสู่ไซต์ หน้า index.html หรือ index.php จะถูกโหลดก่อน หากต้องการเปลี่ยนกฎนี้ (จะโหลด mypage.php ในตอนเริ่มต้น) ให้เพิ่มรหัสต่อไปนี้ใน .htaccess:

การตั้งค่าตัวเลือก PHP ผ่าน .htaccess file

โดยปกติ ไฟล์ php.ini มีหน้าที่ในการตั้งค่า PHP แต่การตั้งค่าบางอย่างสามารถตั้งค่าได้ผ่าน .htaccess มีการใช้นิพจน์สองนิพจน์สำหรับสิ่งนี้: php_value - สำหรับค่าตรรกะ (เช่น เปิด / ปิดการใช้งาน) และ php_flag สำหรับค่าตัวเลข นี่คือกฎสำหรับการเขียนนิพจน์เหล่านี้:

php_flag directive1 VALUE1
php_value directive2 VALUE2

โดยที่ VALUE1 สามารถเปิด, ปิด, 1 หรือ 0 (เปิดใช้งาน 1 และเปิดค่าเฉลี่ย และ 0 และปิดหมายถึงปิดใช้งาน)

VALUE2 - ค่าตัวเลขหรือตัวอักษรใดๆ ที่ตรงกับคำสั่งเฉพาะ

directive1 (ใช้กับ php_flag เท่านั้น) สามารถมีค่าได้:

magic_quotes_gpc - เปิด/ปิดฟังก์ชัน magic_quotes_gpc


display_startup_errors - เปิด/ปิดการแสดงข้อผิดพลาดที่เกิดขึ้นขณะรัน PHP

php_flag display_startup_errors 1


display_errors - เปิด/ปิดการแสดงข้อผิดพลาดในเบราว์เซอร์


output_buffering - เปิด/ปิดการบัฟเฟอร์เอาต์พุต


register_globals - เปิด/ปิดตัวแปรส่วนกลาง


เอ็นจิ้น - เปิด/ปิดการทำงานของ PHP ในโฟลเดอร์ที่ .htaccess ตั้งอยู่และในโฟลเดอร์ย่อยทั้งหมด

directive2 (ใช้กับ php_value เท่านั้น) สามารถมีค่าต่อไปนี้:


upload_max_filesize - ชุด ขนาดสูงสุดไฟล์ที่อัพโหลด

php_value upload_max_filesize 10M


user_agent - ตั้งค่าของสตริง user_agent ที่ส่งผ่านโดยเซิร์ฟเวอร์

php_value user_agent “Mozilla/4.0 (เข้ากันได้; MSIE 6.0; Windows NT 5.1)”


post_max_size - กำหนดขนาดสูงสุดของเมลที่ส่งต่อ


mysql.default_user - ตั้งค่าชื่อผู้ใช้ฐานข้อมูล

php_value mysql.default_user ฐานข้อมูลผู้ใช้


mysql.default_password - ตั้งรหัสผ่านสำหรับผู้ใช้ฐานข้อมูล

php_value mysql.default_password jk323jh4g


mysql.default_host - ตั้งชื่อโฮสต์ฐานข้อมูล (โดยปกติคือ localhost)

php_value mysql.default_host localhost


sendmail_from - ตั้งค่าอีเมลเพื่อส่งอีเมลโดยใช้ PHP


auto_prepend_file - ระบุไฟล์ที่จะเติมหน้าสคริปต์ PHP แต่ละตัว

php_value auto_prepend_file /www/public_html/myfile.php


auto_append_file - ระบุไฟล์ที่จะต่อท้ายสคริปต์ PHP แต่ละตัว

php_value auto_append_file /www/public_html/myfile.php

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

ไฟล์ .htaccess สามารถสร้างได้ในโปรแกรมแก้ไขข้อความ จากนั้นอัปโหลดไปยังไซต์โดยใช้ไคลเอ็นต์ ftp

บันทึก: ชื่อไฟล์ .htaccess ไม่มีคำหรือนามสกุลเพิ่มเติม

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

คุณสมบัติของไฟล์.htaccess

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

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

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

วิธีการรวมไฟล์.htaccess?

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

บันทึก: บน เวทีนี้คุณต้องมีสิทธิ์ sudo

sudo nano /etc/apache2/sites-available/default

เมื่อเปิดไฟล์ ค้นหาส่วนต่อไปนี้และเปลี่ยนค่าของคำสั่ง AllowOverride จากไม่มีเป็นทั้งหมด ส่วนควรมีลักษณะดังนี้:


ตัวเลือก ดัชนี FollowSymLinks MultiViews
AllowOverride ทั้งหมด
อนุญาต, ปฏิเสธ
อนุญาตจากทุกคน

บันทึกและปิดไฟล์แล้วรีสตาร์ท apache

sudo service apache2 รีสตาร์ท

การสร้างไฟล์.htaccess

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

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

sudo nano /var/www/example.com/.htaccess

กรณีการใช้งานทั่วไปสำหรับ .htaccess

1.Mod_เขียนใหม่

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

2. การตรวจสอบสิทธิ์

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

บันทึก: ด้วยเหตุผลด้านความปลอดภัย เราไม่แนะนำให้เก็บไฟล์ดังกล่าวในไดเร็กทอรีเว็บไซต์

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

ชื่อผู้ใช้และรหัสผ่านถูกป้อนลงในไฟล์เป็นคู่ของชื่อผู้ใช้:เข้ารหัส_รหัสผ่าน ตัวอย่างเช่น หากผู้ใช้ชื่อ best_user มีรหัสผ่านของ Awesome คู่ดังกล่าวอาจเป็น "best_user:VtweQU73iyETM"

บันทึก: แต่ละคู่ถูกป้อนในบรรทัดที่แยกจากกัน ไฟล์ .htpasswd สามารถมีได้มากเท่าที่ต้องการ

หลังจากสร้าง .htpasswd แล้ว ให้เพิ่มรหัสต่อไปนี้ใน .htaccess เพื่อเปิดใช้งานคุณสมบัติการตรวจสอบสิทธิ์:

AuthUserFile /usr/local/username/safedirectory/.htpasswd
AuthGroupFile /dev/null
AuthName กรุณาใส่รหัสผ่าน
AuthType Basic
ต้องการ valid-user

เส้น AuthUserFileระบุพาธไปยังไฟล์ .htpasswd

เส้น AuthGroupFileระบุตำแหน่งของ .htgroup เนื่องจากไม่มีไฟล์ดังกล่าวอยู่ในขณะนี้ ให้คงค่า /dev/null ไว้

เส้น AuthNameมีข้อความที่จะแสดงในพรอมต์รหัสผ่าน (คุณสามารถป้อนข้อความใดก็ได้)

AuthTypeหมายถึงประเภทของการรับรองความถูกต้องที่จะใช้ในการตรวจสอบรหัสผ่าน รหัสผ่านได้รับการยืนยันผ่าน HTTP คำสำคัญพื้นฐานไม่สามารถเปลี่ยนแปลงได้

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

3. หน้าข้อผิดพลาดที่กำหนดเอง

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

  • 400 คำขอไม่ถูกต้อง
  • 401 การอนุญาตที่จำเป็น
  • 403 เพจต้องห้าม
  • 404 ไม่พบไฟล์
  • 500 ข้อผิดพลาดภายใน

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

ตัวอย่างเช่น คุณสามารถสร้างหน้า 404 (ลองสร้างหน้าข้อผิดพลาดที่คุณต้องการ)

หลังจากสร้างและโหลดหน้าข้อผิดพลาดแล้ว ให้ระบุตำแหน่งในไฟล์ .htaccess:

ErrorDocument 404 /new404.html

จดจำ: Apache ค้นหาหน้า 404 ในไดเรกทอรีรากของเว็บไซต์ โดยการวาง หน้าใหม่ข้อผิดพลาด 404 ในบางไดเรกทอรีย่อย อย่าลืมเพิ่มไดเรกทอรีย่อยนี้ในบรรทัด เช่น

ErrorDocument 404 /error_pages/new404.html

4. ประเภท MIME

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

AddType เสียง/mp4a-latm .m4a

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

5.SSI

Server Side รวมเทคโนโลยีที่ช่วยประหยัดเวลาได้มากบนเว็บไซต์ การใช้ SSI ที่พบบ่อยที่สุดอย่างหนึ่งคือการอัปเดตหน้าเว็บจำนวนมากที่มีกลุ่มข้อมูลเฉพาะโดยไม่ต้องอัปเดตแต่ละหน้า (เช่น เปลี่ยนใบเสนอราคาที่ด้านล่างของหน้า)

หากต้องการเปิดใช้งาน SSI ให้ป้อนรหัสต่อไปนี้ใน .htaccess:

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

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

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

การเพิ่มบรรทัดนี้ในไฟล์ .htaccess ทำให้ Apache ตรวจสอบไฟล์ html ทั้งหมดด้วยสิทธิ์ที่เหมาะสมสำหรับการรวมฝั่งเซิร์ฟเวอร์

หากต้องการอนุญาตให้เพจใช้ XBitHack ให้พิมพ์:

chmod +x page_name.html

ผลลัพธ์

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

แท็ก: ,

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

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

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

ที่ ไฟล์ที่ให้มาผู้สร้างเว็บไซต์สามารถ:

  • กำหนดค่าคำสั่งเปลี่ยนเส้นทางอย่างง่าย (เปลี่ยนเส้นทาง)ซึ่งจะช่วยให้หลังจากเปลี่ยนโดเมนแล้ว สามารถส่งผู้เยี่ยมชมจากหน้าของไซต์ก่อนหน้าไปยังโปรเจ็กต์ใหม่ได้
  • เปลี่ยนเส้นทางจาก URL ที่มี www ไปยังโดเมนที่ไม่มี www. หรือไปที่ https หลังจากติดตั้งใบรับรอง SSL
  • อธิบายข้อผิดพลาดในหมู่พวกเขามีข้อผิดพลาด 404 พร้อมการแทนที่หน้าที่จำเป็น
  • การแคชไฟล์มันทำเพื่อเร่งการทำงานของทรัพยากรบนเว็บ
  • สร้างซีเอ็นซีเหล่านี้คือ "URL ที่มนุษย์อ่านได้" นั่นคือลิงก์ที่ผู้ใช้อินเทอร์เน็ตเข้าใจได้ถูกสร้างขึ้น
  • เปลี่ยนซอร์สโค้ดของเพจ
  • ควบคุมการเข้าถึงไฟล์และไดเรกทอรีโดยใช้รหัสผ่าน
  • ระบุไฟล์ดัชนี
  • เปิดและปิดการเข้าถึงจากที่อยู่ IP เฉพาะ
  • จัดการบอทการค้นหาบนเว็บไซต์
  • ปรับแต่งคำสั่งทิศทางที่ซับซ้อน

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

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

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

.htaccess . อยู่ที่ไหน

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

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

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

หากคุณไม่พบเอกสารในเส้นทางที่ระบุ ให้สร้างเอกสารของคุณเอง อาจเกิดขึ้นที่ข้อผิดพลาดปรากฏขึ้นบนหน้าจอ ซึ่งหมายความว่าโฮสต์นี้ห้ามไม่ให้สร้างไฟล์บริการ

บริษัทโฮสติ้งราคาถูกมักจะห้ามไม่ให้ลูกค้าสร้างและแก้ไขเอกสารดังกล่าว ดังนั้นพวกเขาจึงควรใช้บริการของพวกเขาในราคาที่แพงกว่าซึ่งได้รับอนุญาต

วิธีสร้าง .htaccess อย่างถูกต้อง

ในการทำเช่นนี้ คุณจะต้องใช้โปรแกรมแก้ไขข้อความทั่วไป เช่น Notepad ซึ่งอยู่บนพีซีเครื่องใดก็ได้:

  1. เปิด Notepad ไม่ต้องเขียนอะไรในนั้น
  2. เลือกรายการ "ไฟล์"แล้วกด "บันทึกเป็น".
  3. หน้าต่างจะปรากฏขึ้นตรงข้ามรายการ "ประเภทไฟล์"เลือก « ทั้งหมดประเภท"หรือ "เอกสารทั้งหมด".
  4. อยู่ในสาย "ชื่อไฟล์"เข้าสู่ . htaccessและคลิกที่ "บันทึก".

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

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

ตัวอย่างการใช้

พิจารณาคำสั่งยอดนิยมสำหรับ .htaccess

เปลี่ยนเส้นทาง

คำสั่งเหล่านี้ใช้กับความสม่ำเสมอที่น่าอิจฉา อนุญาตให้คุณเปลี่ยนเส้นทางผู้เยี่ยมชมจาก URL เก่าไปยังหน้าใหม่ สิ่งนี้เป็นไปได้ด้วยการเปลี่ยนเส้นทาง 301 ก็เพียงพอที่จะป้อนรหัสไฟล์:

เปลี่ยนเส้นทาง 301 /old_URL.html http://www.your_site_name.ru/new_URL.html

โดยทั่วไป คำสั่งจะแสดงในรูปแบบนี้:

เปลี่ยนเส้นทาง URL_LOCAL URL_REDIRECT

URL_ท้องถิ่นคือที่อยู่เดิมที่ใช้โอนผู้ใช้

URL_เปลี่ยนเส้นทาง– URL ใหม่ที่หน้าถูกโอนไป

ในสนาม [ สถานะ]สามารถเป็นค่าต่อไปนี้:

  1. 301 เพจถูกย้ายอย่างถาวร
  2. 302 – เพจถูกย้ายมาระยะหนึ่งแล้ว
  3. 303 - ดูหน้าอื่น
  4. 410 - เพจถูกลบออก

mod_rewrite (คำสั่งเขียนซ้ำที่ซับซ้อน)

โมดูลนี้มีอยู่ใน Apache มีคำสั่งมากมายสำหรับการจัดการที่อยู่ขั้นสูง รายการหลัก ได้แก่ :

1. ข้อบ่งชี้ของกระจกหลัก

ออกแบบมาเพื่อแปลงโดเมนจาก www เป็น URL ที่ไม่ใช่ www ก็เพียงพอที่จะแนะนำกฎ:

RewriteEngine On # เปิด RewriteCond %(HTTP_HOST) ^www.your_site_name\ru$ #conditions สำหรับการเริ่มต้นการเปลี่ยนเส้นทาง RewriteRule ^(*)$ http://your_site_name_/$1 #transformation rule

2. โอนไปที่ https

จนถึงปัจจุบัน เครื่องมือค้นหาของ Googleสนับสนุนให้เจ้าของเว็บไซต์ใช้การเชื่อมต่อที่ปลอดภัย ซึ่งจำเป็นต้องเปลี่ยนเส้นทางผู้ใช้จาก http เป็น https โดยใช้รหัส:

RewriteEngine บน RewriteCond %(HTTPS) !on RewriteRule (.*) https://%(HTTP_HOST)%(REQUEST_URL)

3. ขีดทับที่ท้ายที่อยู่

หากคุณไม่ต้องการให้ URL ของหน้าลงท้ายด้วยชื่อไดเรกทอรี http://your_site_name.ru/catalogให้ป้อนรหัสในไฟล์:

RewriteCond %(REQUEST_URI) /+[^\.]+$ RewriteRule ^(.+[^/])$ %(REQUEST_URI)/

หลังจากดำเนินการคำสั่งนี้ ต่อไปหลังจากที่อยู่ใน โหมดอัตโนมัติเครื่องหมายทับจะถูกเพิ่ม: http://your_site_name.ru/catalog/

4. การโอนโดเมน

หลังจากเปลี่ยนชื่อเว็บไซต์แล้ว อย่าลืมระบุใน .htaccess:

RewriteEngine บน RewriteCond %(HTTP_HOST) ^www\.yoursite.ru\.ru$ RewriteRule ^(.*)$ http://www.your-site.ru/$1

เมื่อเพิ่มประสิทธิภาพเว็บไซต์สำหรับทั้ง Yandex และ Google การเปลี่ยนชื่อโดเมนอาจเต็มไปด้วยผลที่ไม่พึงประสงค์ คำแนะนำใน robots.txt สำหรับ Yandex ถูกแทนที่ด้วยการเปลี่ยนเส้นทาง 301 แต่สิ่งนี้สามารถป้องกันได้โดยการเพิ่มกฎลงในรหัส:

RewriteEngine บน RewriteCond %(REQUEST_FILENAME) robots.txt$ RewriteRule ^([^/]+) $1 [L] RewriteCond %(HTTP_HOST) ^mysite\.ru RewriteRule ^(.*)$ http://www.my-site .ru/$1

5. คำสั่งต้องห้ามสำหรับบอทค้นหา

ใน .htaccess เช่นเดียวกับใน robots.txt คุณสามารถบล็อกการเข้าถึงไซต์สำหรับโรบ็อตเครื่องมือค้นหา:

RewriteEngine บน RewriteCond %(USER_AGENT) Googlebot RewriteRule .* - [F] # F - เกิดข้อผิดพลาด 403 - ไม่อนุญาตให้รวบรวมข้อมูล

เกิดข้อผิดพลาดในการประมวลผล

ผู้ใช้อินเทอร์เน็ตเกือบทุกคนพบข้อผิดพลาด 404 ไม่พบ(ไม่พบหน้าหรือถูกลบ) แต่มีข้อผิดพลาดอื่นๆ อีกมากที่คุณอาจไม่เคยได้ยิน

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

ErrorDocument 404 /siteerror404.html

เอกสารดัชนี

เมื่อผู้เยี่ยมชมเข้าสู่ไซต์ ไฟล์ index.xml จะเปิดขึ้นทันที คุณสามารถแทนที่หน้าดัชนีด้วยหน้าอื่น ๆ โดยเพิ่มรหัส:

DirectoryIndex name.xml

หรือเพิ่มหน้าดังกล่าวหลายหน้า และเครื่องมือค้นหาจะค้นหาตามลำดับที่เหมาะสม:

DirectoryIndex index.html index.php index.pl

การระบุการเข้ารหัส

ฟังก์ชันนี้จำเป็นเพื่อให้ข้อความปรากฏบนหน้าจอของผู้ใช้อย่างถูกต้อง มิฉะนั้น แทนที่จะเป็นหน้าอ่านธรรมดา เขาจะเห็น สัญลักษณ์ที่เข้าใจยาก. วันนี้การเข้ารหัสใช้กันอย่างแพร่หลาย: Windows-1251 - ซิริลลิกและUTF-8 - การเข้ารหัสแบบไบต์คู่. ในการเลือกการเข้ารหัสในเอกสารการบริการ จะใช้คำสั่งต่อไปนี้:

AddDefaultCharset WINDOWS-1251

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

CharsetSourceEnc WINDOWS-1251

การระบุรหัสผ่านสำหรับไดเร็กทอรี

เมื่อต้องการทำสิ่งนี้ ในไดเร็กทอรีปิด ให้เขียน:

AuthName "ต้องการรหัสผ่าน" #message สำหรับขอรหัสผ่าน AuthType Basic #authentication type AuthUserFile /passwords/.psd #filename ที่มีรหัสผ่านสำหรับเข้าสู่ระบบ Require valid-user #name ของผู้ใช้ที่มีสิทธิ์เข้าถึง

เข้าถึงไฟล์และไดเร็กทอรี

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

ปฏิเสธทั้งหมด

วิธีปิดการดูไฟล์เฉพาะ เช่น test.php:

ปฏิเสธจากทั้งหมด

ในการเปิดการเรียกดูสำหรับ IP เฉพาะ และในขณะเดียวกันก็ปิดการเข้าถึงส่วนที่เหลือ คำสั่งอนุญาตให้:

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

บทสรุป

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

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

วิธีสร้างไฟล์ .htaccess

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

หากคุณไม่มีไฟล์ดังกล่าว คุณสามารถสร้างมันขึ้นมาได้อย่างง่ายดาย ควรอยู่ในโฟลเดอร์รูทของไซต์ของคุณ นี่คือสองสามขั้นตอนในการสร้าง:

  • 1. เปิดตัวแก้ไขข้อความหรือตัวที่คุณใช้สำหรับเลย์เอาต์ฉันแนะนำ แผ่นจดบันทึก++, ถ้าเขาไม่รู้จักคุณ ก็ธรรมดา สมุดบันทึก.
  • 2. เราไม่ได้เขียนอะไรเลยและเพียงแค่บันทึกทันทีโดยคลิกที่รายการเมนู "ไฟล์", เลือก "บันทึกเป็น".
  • 3. ในหน้าต่างที่เปิดขึ้นซึ่งมีตัวเลือก "ประเภทไฟล์"เลือก "เอกสารทั้งหมด"หรือ "เอกสารทั้งหมด"
  • 4. ในบรรทัดที่ต้องการระบุชื่อต้องเขียน .htaccess
  • คลิกที่ปุ่ม "บันทึก"เพื่อให้การสร้างเสร็จสมบูรณ์

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

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

วิธีระบุการเข้ารหัสไซต์ใน .htaccess

หากคุณต้องการระบุการเข้ารหัสใน .htaccess คุณต้องเปิดและเพิ่มโค้ดเพียงบรรทัดเดียวที่ระบุการเข้ารหัส สำหรับ UTF-8:

AddDefaultCharset UTF-8

สำหรับ windows-1251:

AddDefaultCharset CP1251

วิธีปฏิเสธการเข้าถึงไฟล์บางไฟล์หรือ .htaccess เอง

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

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

วิธีบล็อกการเข้าถึงไฟล์บางประเภทใน .htaccess

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

วิธีปิดการใช้งานการเรียกดูไดเรกทอรีใน .htaccess

หากคุณต้องการป้องกันไม่ให้ผู้เข้าชมดูโครงสร้างของไซต์ของคุณ ให้เพิ่มโค้ดต่อไปนี้:

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

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

ตัวเลือก ทั้งหมด +ดัชนี

วิธีเพิ่มความเร็วในการโหลดเว็บไซต์ด้วยการบีบอัดไฟล์

คุณบีบอัดไฟล์อะไรก็ได้ เช่น ในการบีบอัดไฟล์ HTML คุณต้องเพิ่มบรรทัดนี้

AddOutputFilterByType ลบข้อความ/html

ถ้านี่คือตัวอย่าง ไฟล์ข้อความแล้วมันควรจะเป็นดังนี้:

AddOutputFilterByType DEFLATE ข้อความ/ธรรมดา

สำหรับจาวาสคริปต์:

AddOutputFilterByType DEFLATE แอปพลิเคชัน/javascript

มีโค้ดที่จะบีบอัดไฟล์ javaScript, HTML และ CSS ทั้งหมดพร้อมกันโดยใช้ GZIP นี่คือรหัสที่นี่:

mod_gzip_on ใช่ mod_gzip_dechunk ใช่ mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$ mod_gzip_item_include ตัวจัดการ ^cgi-script$ mod_gzip_item_include mime ^ข้อความ\.* mod_gzip_item._include mimejaap ^ image\.* mod_gzip_item_exclude rspheader ^การเข้ารหัสเนื้อหา:.*gzip.*

วิธีป้องกันการแทรกรูปภาพจากแหล่งข้อมูลบุคคลที่สาม

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

RewriteEngine บน RewriteCond %(HTTP_REFERER) !^$ RewriteCond %(HTTP_REFERER) !^http(s)?://(www\.)?yourdomain.com RewriteRule \.(jpg|jpeg|png|gif)$ -

yourdomain.com- แทนที่ด้วยโดเมนของไซต์ของคุณเพื่อให้สคริปต์ทำงาน

วิธีบล็อกผู้เยี่ยมชมที่มาจากไซต์ใดไซต์หนึ่ง

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

RewriteEngine บน RewriteCond %(HTTP_REFERER) site1.com RewriteCond %(HTTP_REFERER) site2.com RewriteRule .* - [F]

อย่างที่คุณเห็น คุณสามารถบล็อกได้หลายรายการพร้อมกันโดยเพิ่มบรรทัด เปลี่ยนเฉพาะโดเมน

การแคชไฟล์ใน .htaccess

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

ชุดส่วนหัว Cache-Control "max-age=2592000"

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

ส่วนหัว unset Cache-Control

วิธีเปลี่ยนหน้าหลักใน .htaccess

หน้าดาวน์โหลดมาตรฐานคือหน้า - index.html, index.php, index.htm.

DirectoryIndex newpage.html

เพียงระบุหน้าใหม่แทน newpage.html.

วิธีบล็อกการเข้าถึงไซต์ด้วยที่อยู่ IP

วิธีลบ index.php, index.html จาก URL

วิธีนี้อธิบายไว้ในบทความด้วย -

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

นั่นคือทั้งหมด ขอบคุณสำหรับความสนใจของคุณ 🙂