.htaccess nima va undan qanday foydalanish kerak? Chop etish

  • 2

.htaccess - bu Apache veb-server uchun qo'shimcha konfiguratsiya fayli. Alohida foydalanuvchilar uchun (shuningdek, alohida foydalanuvchilarning turli kataloglarida) veb-serverning ishlashi uchun ko'p sonli qo'shimcha parametrlar va ruxsatlarni o'rnatish imkonini beradi, masalan, kataloglarga boshqariladigan kirish, fayl turlarini qayta tayinlash va hokazo. asosiy konfiguratsiya fayliga kirishni ta'minlash. butun xizmatning ishlashiga ta'sir qilmasdan.

Qoida tariqasida, .htaccess hosting saytining asosiy katalogida joylashgan.

Agar saytning asosiy katalogida fayl bo'lmasa, uni o'zingiz yaratishingiz mumkin.

 

.htaccess ga kiritilgan yozuvlar direktivlar deb ataladi. Direktivlar joriy katalogdagi barcha fayllarga va uning barcha quyi kataloglariga ta'sir qiladi (agar bu direktivalar asosiy .htaccess fayllaridagi direktivalar tomonidan bekor qilinmasa).

Quyida ba'zi direktivalarni yozish variantlari muhokama qilinadi.

 

1. Oddiy qayta yo'naltirish direktivasi (qayta yo'naltirish)

Aytaylik, siz sayt foydalanuvchisini boshqa saytga (URL) yo'naltirishingiz kerak, buning uchun .htaccess fayliga quyidagi qatorni qo'shishingiz kerak:

Qayta yo'naltirish 301 / http://www.example.com

bu erda http://www.example.com - qayta yo'naltirish boradigan URL

 

2. Murakkab qayta yo'naltirish direktivalari (mod_rewrite).

mod_rewrite moduli kuchli, aqlli URL qayta yozish vositasidir. U bilan deyarli barcha turdagi o'zgarishlar mumkin, ular har xil shartlar va omillarga qarab amalga oshirilishi mumkin yoki amalga oshirilmaydi.

Ushbu direktivani ishlatishning ba'zi misollari:

 

- agar sizning saytingiz oddiy ulanishni (http) va shifrlanganini (https) qo'llab-quvvatlasa, ko'pincha barcha http-trafikni foydalanuvchi sezmasdan https-ga yo'naltirish kerak bo'ladi.

Buning uchun biz quyidagi qoidani belgilaymiz:

 

- www holda https-ga yo'naltirish

RewriteEngine yoqilgan

 

RewriteCond %{HTTPS} !=on

RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]

RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]

 

RewriteCond %{SERVER_PORT} !^443

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^ https://yourdomain.by%{REQUEST_URI} [R=301,L]

 

RewriteCond %{HTTP:X-SSL-Emu} !on

RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

 

- www dan https-ga yo'naltirish

RewriteEngine yoqilgan

 

# www ga yo'naltirish

RewriteCond %{HTTP_HOST} !^www\.

RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]

 

RewriteCond %{SERVER_PORT} !^443

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^ https://www.yourdomain.com%{REQUEST_URI} [R=301,L]

 

- ish vaqtida veb-saytga kirishni yopamiz;

RewriteEngine yoqilgan

RewriteCond %{TIME_HOUR}%{TIME_MIN} > 900

RewriteCond %{TIME_HOUR}%{TIME_MIN} < 1800

Rewrite Rule.* - [F]

 

- sayt bir domendan ikkinchisiga domain.com dan domain2.com ga ko'chirildi.

RewriteEngine yoqilgan

RewriteCond %{HTTP_HOST} ^www\.domain\.com$ [R=301,1]

RewriteRule ^(.*)$ http://www.domain2.com/

 

3. Xatolarni hal qilish

Ba'zida serverning ishlashi paytida xatolar yuzaga keladi, ularni serverdagi nosozliklar emas, balki standart qaytarish kodlari deb atash to'g'riroq bo'ladi. Oddiy so'zlar bilan aytganda: server foydalanuvchiga qaytarilmagan so'rov bilan javob kodi bilan javob beradi, uning qiymatini bilib, serverdan ma'lumot so'rashda xatoga nima sabab bo'lganini tushunishingiz mumkin.

4xx va 5xx bilan boshlangan kodlar xato deb tasniflanadi.

Agar 4xx yoki 5xx xatosi yuzaga kelsa, saytingizga tashrif buyuruvchi brauzerdagi serverdan xabarni ko'radi, uni oddiy foydalanuvchi uchun juda tushunarli deb atash qiyin. Apache tafsilotlarga to'la bo'lmagan astsetik texnik matn o'rniga foydalanuvchiga nima bo'lganini va nima qilish kerakligini inson tilida tushuntirishingiz mumkin bo'lgan shaxsiy sahifangizni taqdim etish imkoniyatini beradi.

 

Xato sahifalarini bekor qilish misoli quyida keltirilgan:

 

- tashrif buyuruvchi mavjud bo'lmagan sahifaga kirish holati;

ErrorDocument 404 http://domain.com/error/404.htm

 

- sahifaga kirish cheklangan bo'lsa;

ErrorDocument 403 http://domain.com/error/403.htm

 

- tashrif buyuruvchining so'rovida sintaksis xatosi aniqlandi;

ErrorDocument 400 http://domain.com/error/400.htm

 

- boshqa sinf xatolar doirasiga kiritilmagan har qanday ichki server xatosi.

ErrorDocument 500 http://domain.com/error/500.htm

 

4. Kodlash

Ba'zan foydalanuvchining brauzeri chiqish hujjatining kodlash turini to'g'ri aniqlay olmaydi. Ushbu muammoni hal qilish uchun ishlatiladigan kodlash Apache veb-server sozlamalarida va uzatilgan hujjatning sarlavhasida ko'rsatilgan. Bundan tashqari, to'g'ri tanib olish uchun bu kodlashlar mos kelishi kerak. Bizning serverlarimiz sukut bo'yicha UTF-8 kodlashdan foydalanadi.

Quyida .htaccess sozlamalari uchun ba'zi variantlar mavjud:

 

- standart kodlashni belgilash;

AddDefaultCharset UTF-8

yoki

AddDefaultCharset WINDOWS-1251

 

- serverga yuklangan barcha fayllar avtomatik ravishda belgilangan formatga qayta kodlanadigan holat.

CharsetSourceEnc UTF-8

 

5. PHP da yuklangan fayllarning maksimal hajmini belgilash.

Yuklangan fayllarning maksimal hajmi .htaccess da ikkita direktiv yordamida ko'rsatilgan:

php_value upload_max_filessize 20M

php_v

alue post_max_size 20M

20M o'rniga kerakli chegara hajmini belgilang. Ushbu parametrlarning qiymati 50M dan oshmasligi kerak. E'tibor bering, "M" (Lotin M) belgisi qiymat bilan birga ko'rsatilgan.

 

6. IP manzillar bo'yicha saytga kirishni cheklash.

Ko'pincha bir yoki bir nechta IP-manzillar uchun veb-saytga kirishni rad etish yoki ma'lum biridan tashqari barcha IP-manzillarga kirishni rad etish zarur bo'lganda paydo bo'ladi.

Ba'zi konfiguratsiya opsiyalariga misollar:

 

- ma'lum bir IP-manzilga kirishni rad etish;

Buyurtmaga ruxsat berish, rad etish

Hammadan ruxsat bering

192.168.1.1 dan rad etish.

bu erda 192.168.1.1. - kirish taqiqlangan IP manzil (oxirida nuqta bo'lishi kerak).

 

- ma'lum bir IP-manzildan tashqari hammaga saytga kirishni taqiqlash;

Buyurtmani rad etish, ruxsat berish

Hammadan rad eting

192.168.1.1 dan ruxsat bering.

bu erda 192.168.1.1 - kirish ruxsat etiladigan IP-manzil.

 

- har qanday xostlarga .txt va .dat kengaytmali fayllarga kirishni taqiqlash (masalan, ular ichki skript ma'lumotlarini saqlashi mumkin).

<FilesMatch "\.(txt|dat)$">

Buyurtmani rad etish, ruxsat berish

Hammadan rad eting

 

 

.htaccess fayli bilan ishlash imkoniyatlari haqida batafsil ma'lumotni Apache rasmiy veb-saytida topishingiz mumkin.


Bu javob sizga yordam berdimi?

«Orqaga