คอมพิวเตอร์ หน้าต่าง อินเทอร์เน็ต

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

แอนดิว

2015-02-19T11:30:28+00:00

2017-02-16T05:30:00+00:00

12697

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

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

การแก้ปัญหานี้ทำได้โดยใช้บล็อคโค้ดต่อไปนี้:

AllowOverride #คำสั่งอื่น ๆ ทั้งหมด...

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

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

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

ไฟล์ .htaccess สามารถใช้ทำอะไรได้บ้าง?. มีตัวเลือกมากมายที่นี่ นี่คือตัวเลือกที่พบบ่อยที่สุด:
1. เพื่อจัดการสิทธิ์การเข้าถึงไดเร็กทอรีไซต์ (รหัสผ่านป้องกันไดเร็กทอรี ปฏิเสธการเข้าถึงไฟล์ในรูปแบบใดรูปแบบหนึ่ง หรือเข้าถึงไซต์ในช่วงเวลาหนึ่ง ปฏิเสธหรืออนุญาตการเข้าถึงจากที่อยู่ IP บางอย่าง จัดการหุ่นยนต์เครื่องมือค้นหา)
2.หากต้องการเขียน URL ปัจจุบันเป็น URL ใหม่ตามเงื่อนไข ()
3.ระบุการเข้ารหัสเว็บไซต์อย่างชัดเจน
4.อนุญาตหรือบล็อกการดูไฟล์ไซต์
5.เพื่อป้องกันฮอตลิงค์
6.เพื่อทำการเปลี่ยนเส้นทาง
7.ตั้งค่าหน้าแสดงข้อผิดพลาดของคุณเอง
8.การแทนที่ไฟล์ดัชนี
9…. และอีกมากมาย

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

# .htaccess จุดเริ่มต้นของเทมเพลต # การตั้งค่าเขตเวลา SetEnv TZ Europe/Moscow # บังคับให้ตั้งค่าการเข้ารหัสของหน้าไซต์ AddDefaultCharset UTF-8 # ตั้งค่าไฟล์ดัชนีที่จะ # จะถูกส่งกลับหากไม่พบดัชนี DirectoryIndex ที่ร้องขอ php index.html # ป้องกันไม่ให้ผู้ใช้ดูไฟล์ในไดเร็กทอรี Options -Indexes # อนุญาตให้ติดตามลิงก์สัญลักษณ์ในไดเร็กทอรีนี้ Options +FollowSymLinks # อนุญาตการเข้าถึงเฉพาะ IP Order Deny ที่ระบุ, อนุญาตปฏิเสธจากทั้งหมด อนุญาตจาก x.x.x.x # หรือปฏิเสธ เข้าถึงโดย IP Order อนุญาต,ปฏิเสธ ปฏิเสธจาก x.x.x.x ปฏิเสธจาก x.x.x.x อนุญาตจากทั้งหมด # ปฏิเสธทุกคน จากนั้นเพียง # ระบุหนึ่งบรรทัดนี้ ปฏิเสธจากทั้งหมด # คุณสามารถปฏิเสธการเข้าถึงไดเรกทอรีย่อยที่เกี่ยวข้องกับไฟล์ปัจจุบัน # ด้วยวิธีนี้หรือโดยการวาง มีไฟล์ .htaccess แยกต่างหากอยู่ที่นั่น คำสั่งปฏิเสธ อนุญาตให้ปฏิเสธจากทั้งหมด# ปิดไดเร็กทอรีด้วยรหัสผ่าน AuthType Basic AuthName "ป้อนรหัสผ่าน" #path ไปยังไฟล์ด้วยรหัสผ่านและผู้ใช้ AuthUserFile /full/path/to/.htpasswd need valid-user # หรือปิดไดเร็กทอรีย่อยด้วยรหัสผ่าน AuthType Basic AuthName "ป้อนรหัสผ่าน" #path ไปยังไฟล์ที่มีรหัสผ่านและผู้ใช้ () AuthUserFile /full/path/to/.htpasswd ต้องการผู้ใช้ที่ถูกต้อง# ปฏิเสธการเข้าถึง file.htpasswd # สำหรับผู้เยี่ยมชมทั้งหมด ยกเว้น IP ที่ได้รับอนุญาต คำสั่งปฏิเสธ อนุญาตให้ปฏิเสธจากทั้งหมด อนุญาตจาก x.x.x.x, x.x.x.xx# บล็อกหากคุณต้องการปิดการใช้งานการประมวลผล PHP # ก็สามารถทำได้เช่นกัน ชุด ดับเครื่องยนต์ php_value ดับเครื่องยนต์ php_value# # บล็อกการเปลี่ยนแปลงการตั้งค่า PHP # คำสั่งบางอย่างขึ้นอยู่กับเวอร์ชัน PHP #php_flag register_globals ปิด #php_value memory_limit 16M #สำหรับการอัปโหลดไฟล์ - หากจำเป็น #php_value max_execution_time 500 #php_value max_input_time 500 #php_value upload_max_filesize 30M #php_value post_max_size 30M #php_flag display_errors off # ในการสร้าง PHP สำหรับการอัปโหลดไฟล์ขนาดใหญ่สูงสุด 256M php_value memory_limit 256M php_value upload_max_filesize 256M php_value post_max_size 256M # # การเขียน URL ใหม่ RewriteEngine On # ตั้งค่า URL รูทเป็น /RewriteBase/ #คำขอทั้งหมดจาก HTTP เป็น HTTPS RewriteCond %(HTTPS) =off RewriteRule (.*) https://%(HTTP_HOST)%(REQUEST_URI) #เฉพาะสำหรับไดเร็กทอรีที่ระบุ คำขอทั้งหมดจาก http ไปที่ https เปลี่ยนเส้นทาง RewriteCond %(HTTPS) =off RewriteCond %(REQUEST_URI) /(admin|secret)/ RewriteRule (.*) https://%(HTTP_HOST)%(REQUEST_URI) # 301 เปลี่ยนเส้นทางเป็นการบังคับ #setting เครื่องหมายสแลชต่อท้าย # RewriteCond %(REQUEST_URI) /+[^\.]+$ #RewriteRule ^(.+[^/])$ %(REQUEST_URI)/ # # 301 เปลี่ยนเส้นทางจาก www.site.ru ไปยัง site.ru # วิธีลบ www RewriteCond % (HTTP_HOST) ^www\.site\.ru RewriteRule ^(.*)$ http://site.ru/$1 # # #301 การเปลี่ยนเส้นทางสากลจากโดเมน www บน ปราศจาก www. RewriteCond %(HTTP_HOST) ^www\.(.*) RewriteRule ^(.*)$ http://%1/$1 #301 การเปลี่ยนเส้นทางแบบสากลจากโดเมน ปราศจาก www. บน www. เขียนใหม่ %(HTTP_HOST) ^(.*)$ เขียนใหม่ %(HTTP_HOST) !^www\. RewriteRule ^(.*)$ http://www.%1/$1 # 301 เปลี่ยนเส้นทางจากโดเมนที่ระบุไปยัง RewriteCond หลัก %(HTTP_HOST) ^www.domen.net$ RewriteCond %(HTTP_HOST) ^domain.net$ RewriteCond %( HTTP_HOST) ^www.domain.net$ RewriteRule ^(.*)$ http://domain.net/$1 # #Redirect พร้อมการแปลงพารามิเตอร์ GET RewriteCond %(QUERY_STRING) do=page RewriteCond %(QUERY_STRING) id= (\d+ ) เขียนกฎใหม่ .* /page/%1/? # การเปลี่ยนเส้นทางภายในไปยัง index.php สำหรับ CMS # หากมีการร้องขอไฟล์หรือไดเร็กทอรีที่ไม่มีอยู่ # จากนั้นเปลี่ยนเส้นทางคำขอไปที่ index.php RewriteCond %(REQUEST_FILENAME) !-f RewriteCond %(REQUEST_FILENAME) !-d RewriteRule /index.php [L] # # หรือตัวเลือกอื่นสำหรับการเปลี่ยนเส้นทางภายในไปยัง index.php RewriteCond $1 !^(index\.php|images|robots\.txt|public) RewriteCond %(REQUEST_URI) !\.(cssіjsіjpgіgifіpng)$ RewriteCond %(REQUEST_FILENAME) !-f RewriteCond %(REQUEST_FILENAME) !-d RewriteRule ^(.*)$ index.php?/$1 # หรือเช่นนี้: RewriteRule ^(.*)$ index.php [L] # #Another ตัวเลือก สำหรับผู้ที่ไม่มี WordPress และผู้ที่ต้องการ #กำจัดคำขอที่ไม่จำเป็น (บอท ฯลฯ ) ไปยังธีม ไปยังแผงผู้ดูแลระบบและไดเร็กทอรีประเภท #Where ซึ่งไม่ใช่ไฟล์หรือไดเร็กทอรี และ ไม่ได้ขึ้นต้นด้วย /wp-, #จากนั้นเราจะทำการเปลี่ยนเส้นทางภายในไปที่ index.php RewriteCond %(REQUEST_FILENAME) !-f RewriteCond %(REQUEST_FILENAME) !-d #if หากคุณไม่มี WordPress ให้เพิ่มสิ่งนี้และบล็อกด้วย หลังจากนั้น RewriteCond %(REQUEST_URI) !^/wp- RewriteRule /index.php [L] #ถ้าคุณไม่มี WordPress แล้วทุกคนที่บุกเข้า /wp-... #ให้สถานะ 410 หายไป - แนะนำให้ลืม URL นี้ #RewriteRule "oldproduct" "-" #ตัวอย่างทั่วไป RewriteCond %(REQUEST_URI) ^/wp-RewriteRule. - # ป้องกันจาก hotlink RewriteCond %(HTTP_REFERER) !^$ RewriteCond %(HTTP_REFERER) !^http://site\.ru/ RewriteCond %(HTTP_REFERER) !^https://site\.ru/ RewriteCond %(HTTP_REFERER) !^http://www\.site\.ru/ RewriteCond %(HTTP_REFERER) !^https://www\.site\.ru/ RewriteRule \.(jpeg|png|bmp|gif|jpg|js|css )$ - [F] # # อีกทางเลือกหนึ่งสำหรับทรัพยากรต่อต้านฮอตลิงก์ (รูปภาพ) RewriteCond %(HTTP_REFERER) !^$ RewriteCond %(HTTP_REFERER) !^http://(.+\.)?server\.ru/ RewriteCond %(HTTP_REFERER ) !^https://(.+\.)?server\.ru/ RewriteCond %(REQUEST_URI) !null\.gif$ # เปลี่ยนเส้นทาง dummy.gif stub ไปที่รูปภาพ RewriteRule \.(jpg|jpeg| gif|bmp| png)$ http://server.ru/dummy.gif [L] # ตัวเลือกอื่นสำหรับทรัพยากรต่อต้านฮอตลิงก์ (รูปภาพ) RewriteCond %(HTTP_REFERER) ! ^$ #Replace?mysite\.com/ ด้วยที่อยู่บล็อกของคุณ RewriteCond %(HTTP_REFERER) !^http://(.+\.)?mysite\.com/ RewriteCond %(HTTP_REFERER) !^$ #Replace /images/ nohotlink.jpg ไปยังรูปภาพของคุณด้วย hotlink ห้าม RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L] # อีกทางเลือกหนึ่งสำหรับทรัพยากรต่อต้าน hotlinking (รูปภาพ) RewriteCond %(HTTP_REFERER ) !^ http://(.+\.)?mysite\.com/ RewriteCond %(HTTP_REFERER) !^$ RewriteCond %(HTTP_REFERER) !google. เขียนใหม่ %(HTTP_REFERER) !yandex. RewriteCond %(HTTP_REFERER) !search?q=cache RewriteCond %(HTTP_REFERER) !msn. เขียนใหม่ %(HTTP_REFERER) !yahoo. RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpe [L] ## ข้อผิดพลาดเอาต์พุต 404 หาก mod_rewrite ถูกปิดใช้งาน ข้อผิดพลาดเอกสาร 404 /index.php# มาตั้งค่าหน้าของเราเพื่อหาข้อผิดพลาด ErrorDocument 404 /err_404.html ErrorDocument 403 /err_403.html # # บล็อกของโค้ดสำหรับเปลี่ยนเส้นทางไปยังเวอร์ชันมือถือของไซต์ # ฉันจะให้ที่นี่เป็นตัวเลือกเพิ่มเติมเช่น RewriteEngine บน # ตรวจสอบเบราว์เซอร์ สตริง UserAgent RewriteCond %(HTTP_USER_AGENT) acs RewriteCond %(HTTP_USER_AGENT) alav RewriteCond %(HTTP_USER_AGENT) alca RewriteCond %(HTTP_USER_AGENT) amoi RewriteCond %(HTTP_USER_AGENT) audi RewriteCond %(HTTP_USER_AGENT) aste เขียนใหม่ เงื่อนไข % (HTTP_USER_AGENT) โดย RewriteCond %(HTTP_USER_AGENT) benq RewriteCond %(HTTP_USER_AGENT) นก RewriteCond %(HTTP_USER_AGENT) blac RewriteCond %(HTTP_USER_AGENT) blaz RewriteCond %(HTTP_USER_AGENT) ชง RewriteCond %(HTTP_USER_AGENT) เซลล์ RewriteCond %(HTTP_USER_AGENT) cldc เขียนใหม่ Cond %(HTTP_ USER_AGENT) cmd- เขียนใหม่Cond % (HTTP_USER_AGENT) และ RewriteCond %(HTTP_USER_AGENT) doco RewriteCond %(HTTP_USER_AGENT) เอริค RewriteCond %(HTTP_USER_AGENT) hipt RewriteCond %(HTTP_USER_AGENT) ใน RewriteCond %(HTTP_USER_AGENT) ipaq RewriteCond %(HTTP_USER_AGENT) j ava RewriteCond %(HTTP _USER_AGENT) อุปกรณ์จิ๊ก RewriteCond % (HTTP_USER_AGENT ) kddi RewriteCond %(HTTP_USER_AGENT) keji RewriteCond %(HTTP_USER_AGENT) leno RewriteCond %(HTTP_USER_AGENT) lg-c RewriteCond %(HTTP_USER_AGENT) lg-d RewriteCond %(HTTP_USER_AGENT) lg-g RewriteCond %(HTTP_USER_ ตัวแทน) lge- RewriteCond %( HTTP_ USER_AGENT) maui RewriteCond %(HTTP_USER_AGENT) maxo RewriteCond %(HTTP_USER_AGENT) midp RewriteCond %(HTTP_USER_AGENT) mits RewriteCond %(HTTP_USER_AGENT) mmef RewriteCond %(HTTP_USER_AGENT) mobi RewriteCond %(HTTP_USER_AGENT) mot- RewriteCond %(HTTP_USER_AGENT) moto เขียนใหม่อีกครั้ง % (HTTP_USER_AGENT) mwbp RewriteCond %(HTTP_USER_AGENT) nec- RewriteCond %(HTTP_USER_AGENT) ใหม่ RewriteCond %(HTTP_USER_AGENT) noki RewriteCond %(HTTP_USER_AGENT) opwv RewriteCond %(HTTP_USER_AGENT) palm RewriteCond %(HTTP_USER_AGENT) กระทะ RewriteCond %(HTTP_USER_AGENT) กางเกง RewriteCond %( HTTP_USER_AGENT) pdxg RewriteCond %(HTTP_USER_AGENT) phil RewriteCond %(HTTP_USER_AGENT) เล่น RewriteCond %(HTTP_USER_AGENT) pluc RewriteCond %(HTTP_USER_AGENT) พอร์ต RewriteCond %(HTTP_USER_AGENT) prox RewriteCond %(HTTP_USER_AGENT) qtek RewriteCond %(HTTP_USER_AGENT) qwap เขียนใหม่ %(HT TP_USER_AGENT ) sage RewriteCond %( https TP_USER_AGENT) shar RewriteCond % (HTTP_USER_AGENT) sie- RewriteCond %(HTTP_USER_AGENT) siem RewriteCond %(HTTP_USER_AGENT) smal RewriteCond %(HTTP_USER_AGENT) smar RewriteCond %(HTTP_USER_AGENT) sony RewriteCond % (HTTP_USER_AGENT) sph- เขียนใหม่ %( HTTP_USER_AGENT) สัญลักษณ์ RewriteCon d %(HTTP_USER_AGENT) t-mo RewriteCond %(HTTP_USER_AGENT) teli RewriteCond %(HTTP_USER_AGENT) tim- RewriteCond %(HTTP_USER_AGENT) tosh RewriteCond %(HTTP_USER_AGENT) tsm- RewriteCond %(HTTP_USER_AGENT) ขึ้น g1 RewriteCond %(HTTP_USER_AGENT) upsi RewriteCond %(HTTP_USER_AGENT) vk -v RewriteCond %(HTTP_USER_AGENT ) voda RewriteCond %(HTTP_USER_AGENT) w3cs RewriteCond %(HTTP_USER_AGENT) wap- RewriteCond %(HTTP_USER_AGENT) wapa RewriteCond %(HTTP_USER_AGENT) วาปี RewriteCond %(HTTP_ USER_AGENT) wapp เขียนใหม่ %(HTTP_USER_AGENT) wapr RewriteCond %(HTTP_USER _AGENT) webc RewriteCond %(HTTP_USER_AGENT) winw RewriteCond %(HTTP_USER_AGENT) winw RewriteCond %(HTTP_USER_AGENT) xda RewriteCond %(HTTP_USER_AGENT) xda- RewriteCond %(HTTP_USER_AGENT) up.browser RewriteCond %(HT TP_USER_AGENT) up.link RewriteCond %(HTTP_USER_AGENT) windows.ce RewriteCond %(HTTP_USER_AG ENT) iemobile RewriteCond %(HTTP_USER_AGENT) มินิ RewriteCond %(HTTP_USER_AGENT) mmp RewriteCond %(HTTP_USER_AGENT) symbian RewriteCond %(HTTP_USER_AGENT) midp RewriteCond %(HTTP_USER_AGENT) wap โทรศัพท์ RewriteCond %(HTTP_USER_AGENT) RewriteCond %(HTTP_USER_AGENT) ipad RewriteCond % (HTTP_USER_AGENT) iphone RewriteCond % (HTTP_USER_AGENT) iPad RewriteCond %(HTTP_USER_AGENT) iPhone RewriteCond %(HTTP_USER_AGENT) ipod RewriteCond %(HTTP_USER_AGENT) iPod RewriteCond %(HTTP_USER_AGENT) กระเป๋า RewriteCond %(HTTP_USER_AGENT) การเขียนซ้ำบนมือถือ % (HTTP_USER_AGENT) android RewriteCond %(HTTP_USER_AGENT) Android RewriteCond %(HTTP_USER_AGENT ) pda RewriteCond %(HTTP_USER_AGENT) PPC RewriteCond %(HTTP_USER_AGENT) ซีรีส์ 60 RewriteCond %(HTTP_USER_AGENT) Opera Mini RewriteCond %(HTTP_USER_AGENT) Moby RewriteCond %(HTTP_USER_AGENT) Mobi # ตรวจสอบส่วนหัวของบริการที่ส่งโดยเบราว์เซอร์ RewriteCond %(HTTP_ACCEPT) "text/vnd.wap.wml" RewriteCond %(HTTP_ACCEPT) "application/vnd.wap.xhtml+xml " # ตรวจสอบข้อยกเว้น RewriteCond %(HTTP_USER_AGENT) !windows.nt RewriteCond %(HTTP_USER_AGENT) !bsd RewriteCond %(HTTP_USER_AGENT) !x11 RewriteCond %(HTTP_USER_AGENT) !unix RewriteCond %(HTTP_USER_AGENT) !macos RewriteCond %(HTTP_USER_AGENT) !macintosh RewriteCond % ( HTTP_USER_AGENT) !playstation RewriteCond %(HTTP_USER_AGENT) !google RewriteCond %(HTTP_USER_AGENT) !yandex RewriteCond %(HTTP_USER_AGENT) !bot RewriteCond %(HTTP_USER_AGENT) !libwww RewriteCond %(HTTP_USER_AGENT) !msn RewriteCond %(HTTP_USER_ ตัวแทน) !อเมริกา RewriteCond %( HTTP_USER_AGENT ) !avant RewriteCond %(HTTP_USER_AGENT) !ดาวน์โหลด RewriteCond %(HTTP_USER_AGENT) !fdm RewriteCond %(HTTP_USER_AGENT) !maui RewriteCond %(HTTP_USER_AGENT) !webmoney RewriteCond %(HTTP_USER_AGENT) !windows-media-player # เมื่อเงื่อนไข ได้พบ เปลี่ยนเส้นทางไปยังไซต์เวอร์ชันมือถือ RewriteRule ^(.*)$ http://mobile.version.of.site.ru#Universal 302 เปลี่ยนเส้นทางไปยังเวอร์ชันมือถือของไซต์ RewriteEngine บน #Universal เปลี่ยนเส้นทางไปยังเวอร์ชันมือถือของไซต์ RewriteCond %(HTTP_HOST) ^(.*)$ RewriteCond %(HTTP_USER_AGENT) (?i:midp|samsung|nokia|j2me|avant|docomo|novarra|palmos|palmsource| opwv|chtml |pda|mmp|blackberry|mib|symbian|ไร้สาย|nokia|มือ|mobi|โทรศัพท์|cdm|upb|เสียง|SIE|SEC|samsung|HTC|mot-|mitsu|sagem|sony|alcatel|lg |eric| vx|NEC|philips|mmm|xx|panasonic|sharp|wap|sch|rover|pocket|benq|java|pt|pg|vox|amoi|bird|compal|kg|voda|sany|kdd|dbt |sendo| sgh|gradi|jb|dddi|moto|iphone|android) เขียนกฎใหม่ ^$ http://m.%1# .htaccess สิ้นสุดเทมเพลต

ฉันจะถอดรหัสบางส่วน ธงจากคำสั่ง:

  • เขียนใหม่เงื่อนไข... - NC หมายถึงการลงทะเบียนการเปรียบเทียบที่ไม่ละเอียดอ่อนที่จะดำเนินการ
  • เขียนใหม่เงื่อนไข... - NC ดูด้านบน หรือหมายถึงการรวม RewriteCond ผ่าน OR โดยค่าเริ่มต้นหากไม่มีการระบุอะไร RewriteCond จะถูกรวมผ่านตัวดำเนินการ AND
  • เขียนกฎใหม่... [ล]- L หมายถึงเสร็จสิ้น (หยุดการประมวลผล) การเปลี่ยนแปลงใดๆ เพิ่มเติมในกฎ RewriteRule นี้ URL, เช่น. RewriteRules ที่ตามมาจะไม่ถูกดำเนินการ
  • เขียนกฎใหม่... - L ดูด้านบน R=302 หมายถึงการเปลี่ยนเส้นทางด้วยรหัส 302 ไปยัง URL ที่แปลงแล้ว
  • เขียนกฎใหม่... - L และ R ดูด้านบน QSA - เมื่อแปลง URL ให้ดำเนินการรวมส่วนที่ระบุ และไม่เปลี่ยน
  • เขียนกฎใหม่... [ฟ]- F หมายถึง ปฏิเสธที่จะออกผลเรื่องนี้ URLรหัส 403 ต้องห้าม.
  • เขียนกฎใหม่ - - ก|ไปแล้ว- [ช]ธงหมายถึงแจกรหัส 410 สถานะไปแล้ว- คำแนะนำให้ลืม URL นี้

AuthUserFile - กำหนดเส้นทางไปยังไฟล์ด้วยรหัสผ่านสำหรับการตรวจสอบผู้ใช้ http เส้นทางอาจเป็นแบบสัมบูรณ์จากรูทของระบบไฟล์เซิร์ฟเวอร์ Linux หรือสัมพันธ์จาก ServerRoot apache บน Ubuntu ServerRoot จะเป็น "/etc/apache2" ตามค่าเริ่มต้น เมื่อระบุเส้นทางสัมพัทธ์จาก ServerRoot apache เครื่องหมายทับนำหน้าในเส้นทางจะไม่ถูกระบุ มิฉะนั้น เส้นทางจะถูกมองว่าเป็นแบบสัมบูรณ์จากรูท Linux นอกจากนี้ หากเส้นทางมีอักขระที่ไม่ถูกต้องและการเว้นวรรคซึ่งจำเป็นต้องใส่เครื่องหมายคำพูด นี่เป็นกฎทั่วไป

สั่ง ปฏิเสธ อนุญาต

อีกครั้ง แต่ในรายละเอียดเพิ่มเติม ฉันต้องการกลับไปที่คำสั่งควบคุมการเข้าถึง: คำสั่ง, ปฏิเสธ, อนุญาตและอธิบายไวยากรณ์และตรรกะของมันโดยละเอียดยิ่งขึ้น

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

ไวยากรณ์คำสั่งสั่งซื้อ: สั่งซื้อ หรือ

ค่าเริ่มต้นคำสั่ง Order มีคำสั่ง: ปฏิเสธอนุญาต. โปรดทราบว่า ปฏิเสธอนุญาตเขียนโดยไม่มีช่องว่าง

ขึ้นอยู่กับลำดับที่ระบุคำสั่ง ปฏิเสธอนุญาตหรือ อนุญาต, ปฏิเสธตรรกะของการเปลี่ยนแปลงการทำงาน

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

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

#อนุญาตทุกคนยกเว้น IP ที่ระบุ
คำสั่งอนุญาต ปฏิเสธ
อนุญาตจากทั้งหมด
ปฏิเสธจาก x.x.x.x x.x.x.xx

โปรดทราบว่า IP ถูกเขียนโดยคั่นด้วยช่องว่าง คุณยังสามารถระบุ IP เป็น IP/mask ได้ด้วย

สำหรับสถานการณ์ย้อนกลับจะเป็นอย่างไร ห้ามการเข้าถึงจาก IP ทั้งหมด ยกเว้น x.x.x.x และ x.x.x.xx เราจำเป็นต้องเพิ่มรหัสต่อไปนี้ใน .htaccess:

# ปฏิเสธทุกคนยกเว้นที่ระบุไว้ ไอพี
คำสั่งปฏิเสธอนุญาต
ปฏิเสธจากทั้งหมด
อนุญาตจาก x.x.x.x x.x.x.xx

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

# ปฏิเสธไฟล์ passwd.html ให้กับทุกคน ยกเว้น IP ที่ระบุ

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

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

#ปฏิเสธ *.key ไฟล์เป็น ALL ยกเว้น IP ที่ระบุ

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

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

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

โดยทั่วไปแล้ว ไฟล์ .htaccess จะใช้เพื่อจำกัดการเข้าถึงไฟล์หรือไดเร็กทอรีบางรายการ

โฮสต์ของคุณรองรับ .htaccess หรือไม่

นี่อาจเป็นคำถามที่ยากที่สุดที่ไม่สามารถตอบได้ในทันที! บางครั้งโฮสต์รองรับ .htaccess แต่ห้ามผู้ใช้ใช้บริการนี้ หากคุณสังเกตเห็นบน FTP ว่ามีไฟล์ .htaccess อยู่ที่นั่น อย่ารีบเร่งที่จะแทนที่มัน และควรติดต่อฝ่ายสนับสนุนจะดีกว่า ตามธรรมเนียม หากเซิร์ฟเวอร์ติดตั้ง Unix หรือ Linux เซิร์ฟเวอร์จะรองรับ .htaccess ฉันรู้จักเว็บไซต์สามแห่งที่รองรับ .htaccess ได้แก่:

จะสร้างไฟล์ .htaccess ได้อย่างไร?

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

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

หน้าข้อผิดพลาดปกติ

ก่อนอื่นฉันจะบอกคุณว่าคุณสามารถเปลี่ยนหน้าข้อผิดพลาดได้ เหล่านั้น. หน้าที่จะแสดงในกรณีที่เกิดข้อผิดพลาด (เช่น ไม่พบไฟล์ 404) สามารถปรับแต่งให้เหมาะกับการออกแบบได้ ฉันคิดว่านักออกแบบเว็บไซต์ทุกคนต่างมีความคิดที่ว่าคุณสามารถเขียน 404 ด้วยตัวอักษรสีแดงตัวใหญ่สำหรับการออกแบบของคุณเองได้ บนพื้นหลังของคุณเองโดยมีเมนูและโลโก้ของคุณ เพื่อให้ทุกคนสามารถมองเห็นได้ เอาล่ะ มาเริ่มกันเลย ระบบจะเป็นดังนี้: ErrorDocument หมายเลขข้อผิดพลาด /file.html สมมติว่าเราต้องการเปลี่ยนข้อผิดพลาด 404 จากนั้นเราเขียนดังนี้: ErrorDocument 404 /notfound.html โดยที่ notfound.html เป็นไฟล์ที่อยู่ในไดเร็กทอรีรากและเป็น เปลี่ยนโดยเรา! หากไฟล์ที่มีข้อผิดพลาดอยู่ในโฟลเดอร์ /errorpages ให้เขียนลงในไฟล์ .htaccess ErrorDocument 404 /errorpages/404.html

นี่คือรายการข้อผิดพลาดที่พบบ่อยที่สุด:

401 - ต้องได้รับอนุญาต
400 - คำขอไม่ถูกต้อง
403 - ต้องห้าม
500 ข้อผิดพลาดภายในเซิร์ฟเวอร์
404 - ไม่พบหน้าผิดหรือไม่พบไฟล์

เราสร้างไฟล์ที่มีข้อผิดพลาดเหล่านี้และเขียนไว้ในไฟล์ .htaccess

ในส่วนถัดไป ผมจะพูดถึงฟังก์ชันอื่นๆ ของไฟล์ .htaccess เพื่อปรับปรุงเว็บไซต์ของคุณ

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

ไฟล์ .htaccess มีไว้เพื่ออะไร

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

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

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

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

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

การเข้าถึงที่จำกัด

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

หากต้องการบล็อกการเข้าถึงทั้งไซต์ จะต้องเขียนสิ่งต่อไปนี้ในกฎของไฟล์ .htaccess:

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

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

สำหรับที่อยู่ที่เป็นเครือข่ายย่อยเดียวกัน คุณต้องระบุช่วง 0/* แทนเครื่องหมายดอกจันสุดท้าย
ตัวอย่างเช่น:

อนุญาตจาก *.*.*.0/11

หากคุณไม่ทราบที่อยู่ IP ของคุณ ให้ใช้บริการใดบริการหนึ่งบนอินเทอร์เน็ต เช่น: https://2ip.ru/

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

ปฏิเสธการเข้าถึงที่อยู่เฉพาะ

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

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

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

การตั้งรหัสผ่านเพื่อเข้าใช้งานโฟลเดอร์

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

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

AuthName "your_text" AuthType Basic ต้องมีผู้ใช้ที่ถูกต้อง AuthUserFile "full_path_to_file_.htpasswd"

ในช่อง "your_text" คุณต้องระบุข้อความที่จะแสดงเมื่อคุณพยายามเข้าสู่โฟลเดอร์นี้ สิ่งสำคัญคือข้อความนี้เขียนเป็นภาษาละตินและไม่มีอักขระพิเศษ

บรรทัด Require valid-user อนุญาตให้เข้าถึงชื่อผู้ใช้ใดก็ได้ คุณสามารถระบุรายชื่อของคุณเองได้โดยการคั่นด้วยเครื่องหมายจุลภาคแทนที่จะเป็นผู้ใช้ที่ถูกต้อง

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

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

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

เนื้อหา:
  • § 1 ไฟล์.htaccess
  • 1.1. วิธีสร้างไฟล์ .htaccess
  • 1.2. ตั้งค่า htaccess
  • § 2
  • 2.2. การเปลี่ยนเส้นทางลิงก์เก่าไปยังหน้าใหม่โดยใช้การเปลี่ยนเส้นทาง 301
  • § 3. การจำกัดการเข้าถึง
  • 3.2. การป้องกันด้วยรหัสผ่าน

§ 1 ไฟล์.htaccess

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

คุณสมบัติของการใช้ htaccess:

1. ช่วยให้คุณสามารถแทนที่คำสั่งจำนวนมากที่เขียนในไฟล์ httpd.confg หลักได้

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

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

4. Htaccess ไม่พร้อมให้ผู้ใช้ดูจากเบราว์เซอร์ เนื่องจากอยู่ในหมวดหมู่ "ระบบ"

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

  • . คำสั่งการเปลี่ยนเส้นทางอย่างง่าย (เปลี่ยนเส้นทาง);
  • . คำสั่งการเปลี่ยนเส้นทางที่ซับซ้อน (mod_rewrite);
  • . หน้าดัชนี;
  • . การประมวลผลผิดพลาด;
  • . คำจำกัดความการเข้ารหัส
  • . การจัดการการเข้าถึงไดเร็กทอรีและไฟล์
  • . รหัสผ่านไดเรกทอรี;
  • . ตัวเลือก PHP


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

ขั้นตอนการสร้าง .htaccess:

1. เปิดตัวแก้ไขข้อความ ( กระดาษจดบันทึก++หรือแม้กระทั่งธรรมดา สมุดบันทึก).

2. ในเมนู” ไฟล์" เลือก " บันทึกเป็น".

3. ในรายการแบบเลื่อนลง " ประเภทไฟล์" เลือก " เอกสารทั้งหมด".

4. ใส่เป็นชื่อ" .htaccess" (ไม่มีเครื่องหมายคำพูด)

§ 2 ตัวอย่างการใช้ไฟล์ .htaccess

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

2.1. ข้อผิดพลาด 404 หรือวิธีรักษาผู้เยี่ยมชม

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


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

คุณสามารถสร้างเพจของคุณเองโดยมีข้อความแสดงข้อผิดพลาด 404 ได้ ตัวอย่างเช่น

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

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

สร้างหน้าข้อผิดพลาดของคุณเอง

1 . เปิด Notepad (โปรแกรมแก้ไขข้อความ)

2. วางรหัสต่อไปนี้ที่นั่น:

ErrorDocument 404 http://your_site/myerror.html

ที่ไหน เว็บไซต์ของคุณ คือชื่อโดเมนของเว็บไซต์ของคุณ และ myerror คือชื่อของหน้าข้อผิดพลาด 404

3. เราบันทึกไฟล์นี้ด้วยชื่อ .htaccess ไฟล์ .htaccess ควบคุมหน้า 404

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

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

6. พิมพ์บรรทัดในเบราว์เซอร์ของคุณ http://your_site/ /abracadabra.html และดูผลงานที่ทำเสร็จ

การมีหน้าข้อผิดพลาด 404 ของคุณเองไม่ใช่คำตอบของทุกปัญหา

ด้วยการรักษาผู้มีโอกาสเป็นลูกค้าด้วยหน้าข้อผิดพลาด 404 ของคุณเอง คุณจะเพิ่มโอกาสที่พวกเขาจะซื้อจากคุณ ไม่ใช่จากคู่แข่งของคุณ!

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

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

3. หน้าข้อผิดพลาด 404 ของคุณเองจะไม่ทำให้เสียชื่อเสียงทั้งคุณและทรัพยากรของคุณ!

2.2. การเปลี่ยนเส้นทางลิงก์เก่าไปยังหน้าใหม่โดยใช้การเปลี่ยนเส้นทาง 301

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

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

เปลี่ยนเส้นทาง 301 http://domen.ru/old-page/ http://domen.ru/archive/new-page/

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

2.3. การติดกระจกโดยใช้การเปลี่ยนเส้นทาง 301

นอกจากนี้ การเปลี่ยนเส้นทาง 301 ยังใช้เพื่อเปลี่ยนเส้นทางหน้าเว็บที่มี www นำหน้าไปยังหน้าเว็บที่ไม่มี www หรือในทางกลับกัน สำหรับเครื่องมือค้นหา ไซต์ your_site.ru เป็นสองไซต์ที่มีเนื้อหาเหมือนกัน โดยมีที่อยู่: http://www.your_site.ru/ และ http://your_site.ru ไซต์ดังกล่าวเรียกว่ามิเรอร์ ดังนั้น หัวนมและ PR บางส่วนจึงออกจากไซต์หนึ่งไปอีกไซต์หนึ่ง เพื่อป้องกันไม่ให้สิ่งนี้เกิดขึ้น และสำหรับเครื่องมือค้นหาให้พิจารณาสองไซต์นี้เป็นหนึ่งเดียว "กาวกระจกเข้าด้วยกัน" นั่นคือเปลี่ยนเส้นทางผู้ใช้และโรบ็อตการค้นหาจากไซต์ที่มีคำนำหน้า www ไปยังไซต์ที่ไม่มี www หรือในทางกลับกัน ในการดำเนินการนี้ในไฟล์ .htacces คุณต้องเขียน:

เขียนโปรแกรมใหม่อีกครั้ง
เขียนใหม่ %(HTTP_HOST) ^www.your_site.ru
กฎการเขียนใหม่ (.*) http://your_site.ru/$1

เราได้ตั้งค่าการเปลี่ยนเส้นทางจากทุกหน้าของไซต์ด้วยคำนำหน้า www

§ 3. การจำกัดการเข้าถึง

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

หากต้องการปฏิเสธการเข้าถึงทั้งไซต์ คุณต้องเขียนสิ่งต่อไปนี้ลงในไฟล์ .htacces:

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

ปฏิเสธการเข้าถึงจากที่อยู่ IP ที่ระบุเท่านั้น:

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

"user_ip_address" ต้องถูกแทนที่ด้วยที่อยู่ IP ที่เฉพาะเจาะจง

หากต้องการอนุญาตการเข้าถึงจากที่อยู่ IP ที่ระบุเท่านั้น คุณสามารถเขียน:

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

3.1. การป้องกันไฟล์จากฮอตลิงค์

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

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

เขียนใหม่ %(HTTP_REFERER) !^$
RewriteCond %(HTTP_REFERER) !^http(s)?://(www.)?your_site.ru.*$
RewriteRule \.(jpe?g|bmp|gif|png|css|zip|pdf|txt|doc)$ -

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

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

เขียนใหม่ %(HTTP_REFERER) !^$
RewriteCond %(HTTP_REFERER) !^http(s)?://(www.)?your_site.ru
เขียนใหม่ %(HTTP_REFERER) !^http(s)?://(www.)?yandex.ru
RewriteCond %(HTTP_REFERER) !^http(s)?://(www.)?yahoo.
RewriteCond %(HTTP_REFERER) !^http(s)?://(www.)?google.
RewriteCond %(HTTP_REFERER) !^http(s)?://(www.)?bing.
RewriteRule \.(jpe?g|bmp|gif|png|css|zip|pdf|txt|doc)$ -

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

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

หากต้องการตั้งรหัสผ่านสำหรับไดเร็กทอรีใน .htaccess คุณต้องเขียน:

AuthName "คุณต้องการอะไร"
AuthType พื้นฐาน

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

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

ชื่อผู้ใช้และรหัสผ่านจะถูกจัดเก็บไว้ในไฟล์ .htpasswd เส้นทางไปยังไฟล์นี้ระบุไว้ในคำสั่ง "AuthUserFile"

สำคัญ: เส้นทางไปยังไฟล์ .htpasswd ถูกระบุเป็นแบบสัมบูรณ์ จากไดเร็กทอรีรากของเซิร์ฟเวอร์.

หากต้องการค้นหาเส้นทางไปยัง .htpasswd ซึ่งต้องระบุใน .htaccess คุณสามารถสร้างไฟล์ php ที่มี:

< ?php echo $_SERVER["DOCUMENT_ROOT"]; ? >

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

คุณสามารถตั้งรหัสผ่านสำหรับไฟล์เฉพาะได้ดังนี้:

< Files file.txt >
AuthName "ไม่ใช่สำหรับทุกคน"
AuthType พื้นฐาน
AuthUserFile /home/server/your_site.ru/pass/.htpasswd

รหัสผ่านสำหรับกลุ่มไฟล์:

< Files "\.(sql)$" >
AuthName " ไม่ใช่สำหรับทุกคน "
AuthType พื้นฐาน
AuthUserFile /home/server/your_site.ru/pass/.htpasswd

ในกรณีนี้ ไฟล์ทั้งหมดที่มีนามสกุล .sql จะสามารถเข้าถึงได้ด้วยรหัสผ่านเท่านั้น

อย่าลืมเขียนความคิดเห็นของคุณหากคุณชอบบทความนี้ คำสองสามคำจากคุณและสำหรับฉัน - การรับรู้จากเครื่องมือค้นหาว่าฉันเขียนบทความเกี่ยวกับมนุษย์ตามปกติ ขอบคุณล่วงหน้า!