Затворете достъпа до страницата htaccess. примери за htaccess

Затворете достъпа до страницата htaccess. примери за htaccess

Файлът .htaccess е един от онези файлове, които всеки администратор на уеб сайт трябва да знае и разбира. На начално нивотой контролира достъпа до папките на сайта. Но има много повече задачи, които htaccess може да реши вместо вас.

1. Управление на достъпа до файлове и директории

Защитата с парола е един от аспектите на въпроса, но понякога е необходимо напълно да се блокира възможността на потребителя да има достъп до определени файлове или директории. Такива задачи обикновено възникват за системни папки, като например include . Приложението трябва да има достъп до тях и потребителят губи всички привилегии.

За да разрешите проблема, добавете следния код към файла .htaccess и го запазете в желаната директория:

Но такъв ход блокира достъпа за всички, включително и за вас. За да си осигурите достъп, трябва да посочите своя IP адрес. Ето кода:

Отказ на поръчка, отказ на разрешение от всички разрешения от xxx.xxx.xxx.xxx

xxx.xxx.xxx.xxx е вашият IP адрес. Ако замените последните три цифри с 0/12, например, тогава ще бъде показан диапазонът от IP адреси в същата мрежа. Но този подход може да доведе до проблеми, така че е по-добре да посочите списъка с IP адреси отделно.

Ако трябва да блокирате конкретен файл, включително самия .htaccess, използвайте следния код:

ред разреши, откажи отказ от всички

По същия начин, ако трябва да разрешите достъп от конкретни IP адреси, избройте ги с разреши от .

Ако трябва да блокирате достъпа до определени типове файлове, използвайте следния код:

Поръчка Разреши, Откажи Откажи от всички

2. Деактивирайте сърфирането в директория

За да деактивирате прегледа на съдържанието на директория, използвайте следния код:

Опции Всички индекси

Но ако по някаква причина трябва да разрешите сърфирането в директория, използвайте следния код:

Опции Всички + индекси

3. Ускорете изтеглянията с компресиране на файлове

Можете да компресирате всякакви файлове, не само изображения. Например за компресиране HTML файловеизползвайте следния код:

AddOutputFilterByType DEFLATE текст/html

И за компресиране на текст:

AddOutputFilterByType DEFLATE текст/обикновен

Може и да се компресира JavaScript файловеили дефинирайте множество типове файлове за архивиране:

AddOutputFilterByType DEFLATE приложение/javascript AddOutputFilterByType DEFLATE приложение/rss+xml

Като алтернатива можете да компресирате всички HTML, JavaScript, CSS и други файлове с GZIP:

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 ^text\.* mod_gzip_item_include mime ^application/x-javascript.* mod_gzip_ite m_exclude mime ^ image\.* mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*

4. Защита на сайта от хотлинкинг

Ако искате да предотвратите бързи връзки към изображения от вашия сайт, добавете следните редове към вашия .htaccess файл:

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

Просто заменете yourdomain.ru с името на вашия домейн.

5. Блокиране на потребители, пренасочени от определен домейн

Ако не приветствате потребителите на определен домейн, можете да получите забрана за достъп до вашия сайт. Например, ако вашият сайт е в списъка, където трафикът не е желателен (например порнографски сайтове, неонацистки ресурси и т.н.), тогава можете да го блокирате, като използвате страницата 403 (достъпът е отказан). Mod_rewrite трябва да бъде активиран (обикновено активиран). Добавяне на код:

RewriteEngine на RewriteCond %(HTTP_REFERER) bannedurl1.com RewriteCond %(HTTP_REFERER) bannedurl2.com RewriteRule .* - [F]

Трябва да замените bannedurl1.com и bannedurl2.com с имена на домейни от вашия черен списък. Флагът показва, че името на домейна не е чувствително към главни и малки букви, а флагът [F] определя действието - в нашия пример показва страница 403. Ако трябва да забраните няколко сайта, използвайте флага за всеки домейн, включително последния . Само флагът може да се използва за забрана само на един домейн.

6. Блокиране на заявки от определени агенти

Ако вашият дневник съдържа записи за действията на определени потребителски агенти (роботи или паяци), които не ви харесват, тогава можете да добавите няколко реда към файла .htaccess и да предотвратите достъпа на такива агенти до вашия сайт:

RewriteEngine На RewriteBase / SetEnvIfNoCase Referer "^$" bad_user SetEnvIfNoCase User-Agent "^badbot1" bad_user SetEnvIfNoCase User-Agent "^badbot2" bad_user SetEnvIfNoCase User-Agent "^badbot3" bad_user Отказ от env=bad_user

7. Кеширане на файлове

Друг метод за ускоряване на зареждането на вашия сайт е кеширането на файлове. Ето какво трябва да се добави към файла .htaccess, за да се активира кеширането:

Набор от заглавки Cache-Control "max-age=2592000"

Можете да добавите типове файлове (или да премахнете някои от тях) към списъка в примера. Можете също да използвате max-age, за да посочите времето в секунди за съхраняване на вашите файлове в кеша.

8. Деактивирайте кеширането за определени типове файлове

Ако не е необходимо да кеширате определени типове файлове, можете просто да ги оставите извън списъка. Понякога обаче файловете могат да бъдат кеширани, дори ако не сте ги декларирали в списъка. В такива случаи можете да деактивирате кеширането само за тези типове файлове. В повечето случаи искате да деактивирате кеширането за динамични файлове, като например скриптове. Ето кода:

Заглавието деактивира Cache-Control

Просто добавете типове файлове, които не е необходимо да бъдат кеширани в списъка.

9. Пропуснете диалоговия прозорец за изтегляне

По подразбиране, когато изтеглите файл от уеб сървър, ще се появи диалогов прозорец с молба да предприемете действие върху файла (запазване или отваряне). Този диалогов прозорец е много досаден при качване на големи медийни файлове или PDF документи. Ако файловете са качени на вашия сървър, за да може потребителят да ги изтегли, можете веднага да започнете процеса. Трябва да поставите следните редове във файла .htaccess:

AddType application/octet-stream .pdf AddType application/octet-stream .zip AddType application/octet-stream .mp3

10. Преименувайте файла .htaccess

Поради някои причини, обикновено свързани със сигурността, може да е необходимо да преименувате файла .htaccess. Което се прави много лесно. Теоретично преименуването на файла .htaccess не би трябвало да създава проблеми при стартиране на приложения на вашия сървър, но ако се случат, просто трябва да възстановите оригиналното име.

AccessFileName htac.cess

Също така трябва да актуализирате всички срещания в самия файл и където се споменава .htaccess, в противен случай ще има много грешки.

11. Променете индексната страница по подразбиране

Ако имате нужда индексната страница да е различна от стандартната, index.html, index.php, index.htm и т.н., тогава тази задача се решава лесно. Ето какво трябва да се добави към файла .htaccess:

DirectoryIndex mypage.html

Заменете mypage.html с URL адреса на страницата, която искате.

12. Пренасочване към защитена https връзка

Ако използвате https и искате всички потребители да бъдат пренасочени към него, следният код ще ви помогне:

RewriteEngine On RewriteCond %(HTTPS) !on RewriteRule (.*) https://%(HTTP_HOST)%(REQUEST_URI)

13. Ограничение за размера на файла за качване на PHP, максимален размер на заявката и максимално време за изпълнение на скрипта

htaccess ви позволява да зададете някои стойности, които засягат PHP приложенията. Например, ако трябва да ограничите PHP качванията, за да спестите място за хостинг, използвайте следния код:

php_value upload_max_filesize 15M

Разбира се, можете да зададете стойността, която искате, в нашия пример 15M (MB) не е фиксирана. Можете също да ограничите максималния размер на заявката за качване в PHP:

php_value post_max_size 10M

Променете 10M на каквато стойност желаете.

Ако не искате скриптът да работи вечно, можете да ограничите времето му за изпълнение:

php_value max_execution_time 240

240 - броят секунди преди прекъсването на скрипта.

Ако искате да ограничите времето за анализ на въведените данни от скрипта, използвайте следния ред:

php_value max_input_time 180

14. Маскиране на типове файлове

Понякога трябва да скриете типове файлове на сървъра от потребителя. Един от начините за решаване на проблема е да ги прикриете. Например можете да направите това. че всички файлове ще изглеждат като HTML или PHP:

Приложение ForceType/x-httpd-php Приложение ForceType/x-httpd-php

Заключение

Има още много задачи, които .htaccess може да реши. Например, можете да зададете автоматичен превод на страници на сайта или часова зона, или да премахнете www от URL адреси, и още много. Но преди да започнете да експериментирате с .htaccess, винаги трябва да правите архивиранеоригинал, за да можете да се върнете към оригиналния код.

Всеки уеб разработчик знае за целта на файла .htaccess. На основно ниво ви позволява да контролирате достъпа до директории на сайтове. Но чрез добавяне на различни допълнителни кодови фрагменти към него, много други интересни неща могат да се правят с него.

Ако имате нужда от основна информация за предназначението даден файл, тогава можете да получите въведение в .htaccess от нашата статия ( Не преведох тази статия, тъй като има основи, има достатъчно от тях в рускоезичния сегмент на мрежата, но ако се прояви интерес, тогава тя също може да бъде преведена, за да завърши картината - приблизително. преводач), в който всички аспекти на неговото приложение са разкрити достатъчно подробно.

И така, полезни примери за употреба. htaccess:

1. Управление на достъпа до файлове и директории
Защитата с парола е едно нещо, но понякога може да искате напълно да блокирате потребителите от достъп до определен файл или папка. Това обикновено се отнася до системни папки, като включва, до които приложенията трябва да имат достъп, но не и потребителите.

За да направите това, поставете даден кодда подаде. htaccess и го запазете в директорията, до която отказвате достъп:

Отказва от всички
Имайте предвид обаче, че достъпът ще бъде блокиран за всички потребители, включително и за вас. Можете да отворите достъп за конкретен потребител, като въведете неговия IP адрес. Ето кода, от който се нуждаете за това:

Отказ на поръчка, отказ на разрешение от всички разрешения от xxx.xxx.xxx.xxx
където xxx. xxx. xxx. xxx е вашето IP. Можете да замените последните три цифри, за да зададете разрешените диапазони от IP адреси. Например, като вместо това напишете "0/12", вие ще посочите диапазон от IP адреси на една мрежа, което ще ви спести необходимостта да въвеждате всички разрешени IP адреси отделно в списъка.

Ако искате да блокирате достъпа до конкретен файл, включително самия него. htaccess, използвайте следния кодов фрагмент:

ред разреши, откажи отказ от всички
Ако искате да посочите конкретни IP адреси, на които трябва да бъде отказан достъп, избройте ги с разреши от.

Ако искате да блокирате достъпа до файлове от определен тип, използвайте този код:

Поръчка Разреши, Откажи Откажи от всички

2. Забрана за разглеждане на директории
За да предотвратите сърфирането в директорията на сайта, добавете следния код към .htaccess:

Опции Всички индекси
Ако по някаква причина искате да разрешите преглед на всички директории, използвайте кода:

Опции Всички + индекси

3. Ускорете времето за изтегляне чрез компресиране на файлове
Можете да компресирате файлове от всякакъв тип. Например, за да компресирате HTML файлове, добавете следния код:

AddOutputFilterByType DEFLATE текст/html
За компресия текстови файловеизползвайте:

AddOutputFilterByType DEFLATE текст/обикновен
Можете също да компресирате JavaScript или да активирате компресията за други различни видовефайлове с команди:

AddOutputFilterByType DEFLATE приложение/javascript AddOutputFilterByType DEFLATE приложение/rss+xml
Освен това можете да компресирате всичките си JavaScript, HTML и CSS файлове с GZIP. За да направите това, използвайте следния код:

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 ^text\.* mod_gzip_item_include mime ^application/x-javascript.* mod_gzip_ite m_exclude mime ^ image\.* mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*

4. Защита на сайта от вмъкване на изображения от други ресурси
Ако искате да предотвратите добавянето на връзки към изображения от ресурси на трети страни, добавете следния код към файла .htaccess:

RewriteEngine на RewriteCond %(HTTP_REFERER) !^$ RewriteCond %(HTTP_REFERER) !^http(s)?://(www\.)?yourdomain.com RewriteRule \.(jpg|jpeg|png|gif)$ -
Не забравяйте да замените yourdomain.com с името на вашия домейн.

5. Блокиране на посетители от определен домейн
Ако не искате да виждате потребители от конкретен домейн на вашия сайт, тогава можете да откажете достъп до тях. Например потребители от нежелани ресурси (сайтове за възрастни, хакерски сайтове и т.н.) могат да бъдат пренасочени към страница 403 Forbidden. За да направите това, mod_rewrite трябва да бъде активиран, въпреки че обикновено е активиран по подразбиране. Добавете към .htaccess код:

RewriteEngine на RewriteCond %(HTTP_REFERER) bannedurl1.com RewriteCond %(HTTP_REFERER) bannedurl2.com RewriteRule .* - [F]
Трябва да замените bannedurl1.com и bannedurl2.com с домейните, които искате да поставите в черния списък. Можете да използвате флага, за да посочите, че входът Име на домейннечувствителен към регистър. Флагът [F] показва вида на действието, в този случай показвайки грешка 403 Forbidden. Ако искате да забраните няколко сайта, използвайте флагове за всеки домейн, ако искате да забраните един домейн, използвайте само .

6. Блокиране на заявки от определени браузъри
Ако вашите регистрационни файлове съдържат записи за посещение на определени браузъри (като ботове или паяци, имитиращи браузъра), можете да им попречите да имат достъп до вашия сайт, като добавите няколко реда към. htaccess:

RewriteEngine На RewriteBase / SetEnvIfNoCase Referer "^$" bad_user SetEnvIfNoCase User-Agent "^badbot1" bad_user SetEnvIfNoCase User-Agent "^badbot2" bad_user SetEnvIfNoCase User-Agent "^badbot3" bad_user Отказ от env=bad_user
Заменете badbot1, badbot1 и т.н. с имената на ботовете във вашия дневник. Това ще попречи на програми на трети страни да получат достъп до вашия сайт.

7. Кеширане на файлове
Кеширането на файлове е друг начин да накарате вашия сайт да се зарежда по-бързо. Ето какво трябва да напишете в .htaccess:

Набор от заглавки Cache-Control "max-age=2592000"
Можете да добавите повече видовефайлове (или изтрийте някои от тях) в изброените в този примерсписък с файлове. Можете също така да посочите колко дълго се кешират файловете (в секунди) с променливата max-age.

8. Деактивирайте кеширането за различни видовефайлове
Ако не искате да кеширате определени типове файлове, можете да изберете да не ги включвате в списъка. Понякога обаче файловете могат да се съхраняват в кеша дори без да са изрично изброени в списъка, в който случай можете да деактивирате кеширането за тях поотделно. Най-често трябва да деактивирате кеширането за динамични файлове, като например скриптове. Пример за кода, необходим за това:
Заглавието деактивира Cache-Control
Просто посочете типовете файлове, за които искате да деактивирате кеширането.
9. Прескочете диалоговия прозорец за изтегляне
По подразбиране, когато се опитате да изтеглите файл от уеб сървър, се показва диалогов прозорец, който ви пита дали искате да запишете файла или да го отворите. Този диалогов прозорец е особено досаден при изтегляне на големи медийни или PDF файлове. Ако файловете, които качвате на сървъра, са само за изтегляне, можете да улесните живота на потребителите, като зададете изтегляне като действие по подразбиране. Добави към. htaccess следното:

AddType application/octet-stream .pdf AddType application/octet-stream .zip AddType application/octet-stream .mp3

10. Преименувайте файла .htaccess
Ако по някаква причина искате да преименувате файла .htaccess, можете да го направите. На теория преименуването на файла .htaccess не би трябвало да създава проблеми с приложенията, работещи на вашия сървър, но ако забележите скриптови грешки след преименуването на файла, просто го преименувайте обратно.

AccessFileName htac.cess
Освен това трябва да актуализирате всички записи, които споменават файла .htaccess или ще получите много грешки.

11. Замяна начална страницасайт
Ако искате да инсталирате начална страницаразличен от стандартния (index.html, index.php, index.htm и т.н.), добавете следния код към вашия .htaccess файл:

DirectoryIndex mypage.html
Заменете mypage.html с URL адреса на страницата, която искате да използвате като начална страница.

12. Пренасочване към защитена HTTPS връзка
Ако използвате HTTPS и искате да пренасочите потребителите към защитени страници на вашия сайт, добавете следните редове към вашия .htaccess файл:

RewriteEngine On RewriteCond %(HTTPS) !on RewriteRule (.*) https://%(HTTP_HOST)%(REQUEST_URI)

13. Ограничаване на максималния размер на качените файлове в PHP, максималния размер на предаваните данни, максималното време за изпълнение на скриптове и др.
.htaccess ви позволява да зададете някои стойности, които пряко засягат работата на PHP приложенията. Например, ако искате да зададете ограничение за размера на качените файлове в PHP, за да не задръствате хостинга с големи файлове:

php_value upload_max_filesize 15M
Можете да зададете произволна стойност, в примера размерът на файла е ограничен до 15M (MB). Освен това можете да ограничите максималния размер на данните, прехвърляни по време на зареждане в PHP:

php_value post_max_size 10M
Можете да замените 10M с каквато стойност желаете. Ако нямате нужда скриптове да се изпълняват през цялото време, можете да ограничите времето за тяхното изпълнение с реда:

php_value max_execution_time 240
240 - време за изпълнение (в секунди), след което скриптът ще бъде спрян, можете да промените тази стойност на всяка друга. И накрая, ако искате да ограничите времето на скрипта за анализиране на необработени данни, използвайте следния код:

php_value max_input_time 180
Задайте 180 на каквото желаете време (в секунди).

14. Скриване на типове файлове
Понякога искате потребителите да не знаят какви типове файлове има на вашия сайт. Един от начините да скриете тази информация е да накарате всичките си файлове да се показват като HTML или PHP файлове:

Приложение ForceType/x-httpd-php Приложение ForceType/x-httpd-php
И това е само част от това, което .htaccess може да прави, но като цяло ви позволява да правите много повече. Например, можете да настроите страниците на вашия сайт да се превеждат автоматично, да зададете часовата зона на сървъра, да премахнете WWW от URL адресите или да използвате фантастични изгледи на директории и т.н. Но във всеки случай, преди да започнете да експериментирате с файла .htaccess, винаги пазете резервно копие на оригиналния .htaccess, така че ако възникнат проблеми, можете бързо да възстановите работата на сайта.

htaccess файл - примери за настройка и използване - 3.7 от 5 на базата на 20 гласа

Файлът htaccess ви позволява да конфигурирате и замените настройките на уеб сървъра Apache и подобни сървъри. С него можете да зададете разрешения и параметри за сървъра да работи с определени хостинг потребители и дори на отделни папкиконкретен потребител.

Най-често се използва за създаване на 301 пренасочвания от стари URL адреси към нови, пренасочване на типове файлове, контролиран достъп до директория и др. Благодарение на файла htaccess не е необходимо да имате достъп до основния конфигурационен файл и да повлияете на работата на сървъра като цяло.

Какво е htaccess файл и за какво се използва

Както споменахме, htaccess се използва за задаване на някои опции за Apache и други сървъри. Въпреки голямото и странно разширение, персонализирането на .htaccess файла става чрез отваряне и модифициране на съдържанието му с помощта на произволен текстов редактор.

Файлът htaccess е създаден специално, за да позволи на всеки потребител да промени конфигурацията на сървъра, засягайки само собствения си сайт, а не целия сървър. Всеки знае, че основните директиви за конфигурация на Apache са във файла httpd.conf. Повечето потребители обаче, а ако говорим за виртуален хостинг, тогава всички потребители, нямат възможност за достъп до него и права да го променят, тъй като това действие ще се отнася за всички.

Htaccess файл често се нарича динамичен файл. Това е така, защото сървърът трябва да има достъп до него всеки път, когато трябва да направи заявка към съдържащата се директория. Може би това е значително предимство, тъй като промените, направени от потребителя във файла, ще влязат в сила веднага, без да е необходимо да рестартирате сървъра. Ако се направят промени в основния конфигурационен файл, рестартирането на сървъра е предпоставка за влизането им в сила.

Разбира се, не всичко е толкова гладко, колкото бихме искали, тъй като използването на htaccess леко засяга производителността на сървъра, но в случай на затворен достъпкъм основния конфигурационен файл, насаме най-простият и удобен метод за промяна на параметрите.

Някои характеристики на използването на htaccess:

1. Може да бъде предефиниран голям бройдирективи в главния файл httpd.confg

2. Ако поставите файла htaccess в основната директория, той ще се разпространи в целия сайт (единствените изключения са тези директории, в които се намира собственият конфигурационен файл, и директориите, разположени по-долу в дървовидната структура)

3. Можете да поставите файла htaccess във всяка директория и неговите директиви ще бъдат приложени към всички поддиректории

4. Htaccess не е достъпен за потребителя за преглед от браузъра, тъй като принадлежи към категорията "система".

По този начин, с htaccessпотребителят получава гъвкавостта да настрои свой собствен сървър и може да приложи следните опции:

  • Обикновени директиви за пренасочване (пренасочване);
  • Сложни директиви за пренасочване (mod_rewrite);
  • Индексни страници;
  • Обработка на грешки;
  • Дефиниция на кодиране;
  • Управление на достъпа до директории и файлове;
  • Защита на директория с парола;
  • PHP опции.

Примери за най-честата употреба на файла htaccess

Сега ще разгледаме най-често срещаните работни опции за използване на htaccess за персонализиране на сайт.

Преди да започнем, обърнете внимание на следните точки:

2. Да създаваш нов файлс разширението htaccess, трябва да отворите Notepad или друг текстов редактор, напишете кода, запишете файла, като посочите разширението .htaccess (точка отпред). След това остава да го хвърлите в директорията, за която е предназначен.

3. Синтаксис.htaccess

Пътищата до файлове (директории) се определят, като се започне от корена на сървъра.

DirectoryIndex /home/st5155/www/data/home.html

Ако конфигурирате файла htaccess, който се намира в главната папка на сайта, пътищата се посочват от главната папка на тази папка.

DirectoryIndex /home.html

Домейните се записват с протокола http:// или https://

Пренасочване / http://your-sait.ru

Файлът има име "dot" htaccess.

Използвайте знака #, за да създадете коментариран ред.

Най-удобно е да редактирате файла с помощта на редактора AkelPad, включен в Total Commander, просто го изберете и натиснете F4.

Обикновено пренасочване - Директива за пренасочване

1. Пренасочване към нови страници на сайта

Ако страниците на сайта са били преместени на нови адреси, тогава потребителят или роботът за търсене, след като са се свързали със стария адрес, вероятно няма да ги видят. За залепване на старите и нов адресстраниците могат да прилагат просто пренасочване 301. За да направите това, следният код трябва да бъде написан в конфигурационния файл на htaccess:

Пренасочване 301 /staraya.html http://vash-sait.ru/novaya.html

2. Привеждане на емисии в общ формат

Преди това бяха използвани различни формати на емисии, като: Atom, RSS, Rdf. Днес RSS е основният и най-популярен сред тях, така че може да се внимава другите формати да бъдат пренасочени към един. Това също използва файла htaccess и следния код:

RedirectMatch 301 /feed/(atom|rdf|rss|rss2)/?$ http://your-sait.ru/feed/

Сложно пренасочване - директива RewriteRule

1. Пренасочване на домейн от www към не-www.

Много често трябва да използвате пренасочване 301 в htaccess, за да слепите домейни с www и без www. По-рано търсачкисмяташе такива адреси за напълно различни и ги разглеждаше като различни сайтове. Днес задачата за залепване е възложена на робота за търсене, но никога няма да е излишно да посочите правилното огледало. Освен това самите те няма да имат никакво объркване.

Опции +FollowSymLinks RewriteEngine On RewriteCond %(HTTP_HOST) ^www.vash-sait\.ru$ RewriteRule ^(.*)$ http://vash-sait.ru/$1

2. Пренасочване на посетители към различни страници в зависимост от IP адреса на посетителя.

В htaccess е възможно да се посочи към коя страница ще бъде пренасочен потребителят с определен IP адрес. Например пренасочване на посетители с ip адрес 183.11.101.1 към страницата kontakt.html

SetEnvIf REMOTE_ADDR 183.11.101.1 REDIR="redir" RewriteCond %(REDIR) redir RewriteRule ^/$ /kontakt.html

3. Пренасочване при актуализиране на уеб ресурс

По време на тестване или актуализиране на ресурса потребителят няма да може да стигне до сайта. Би било погрешно обаче да не го предупредим за това. В .htaccess можете да напишете код, който ще пренасочи потребителя към информационна страница, която описва същността на проблема (причини, време и т.н.).

RewriteEngine на RewriteCond %(REQUEST_URI) !/info.html$ RewriteCond %(REMOTE_HOST) !^14\.124\.354\.80 RewriteRule $ http://your-sait.ru/info.html

Където 14.124.354.80 - заменете с вашия IP адрес.

4. Hotlink защита

Не е тайна, че днес все повече информация се краде от уебсайтове. Понякога само текст, а понякога заедно с графични изображения. И всеки път, когато посетител дойде на сайт на трета страна, тези изображения ще бъдат заредени от вашия хостинг, създавайки натоварване и изгаряне на трафик. За да предотвратите това, добавете следния код:

RewriteEngine На RewriteCond %(HTTP_REFERER) !^$ RewriteCond %(HTTP_REFERER) !^http://([ -a-z0-9] \.)?your-sait\.ru RewriteRule \.(gif|jpe?g| png)$ -

В примера по-горе ще се появи грешка 403 на сайта, който зарежда изображението, ако искате конкретно изображение да се показва вместо изображението, заменете последния ред със следното:

RewriteRule \.(jpg|png|gif)$ http://your-sait.ru/images/imageinfo.jpg

5. Пренасочване към защитена https връзка

В .htaccess можете да конфигурирате пренасочване към защитена https връзка, така че всички потребители да работят само през този протокол, което гарантира сигурността и надеждността на трансфера на данни между сървъра и клиента.

RewriteEngine On RewriteCond %(HTTPS) !on RewriteRule (.*) https://%(HTTP_HOST)%(REQUEST_URI)

6. Автоматично заместваненаклонена черта в края на адреса.

Има много чести ситуации, когато URL адресът завършва с името на директорията: http://your-sait.ru/images/raznoe

Apache може сам да коригира грешката и да направи пренасочване 301, като добави липсващата наклонена черта към връзката. По този начин потребителят няма да почувства никаква разлика и ще получи в отговор необходимата страница. Но ще отнеме два пъти повече време за извършване на такова действие. Следният код винаги ще добавя / в края на адреса.

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

7. Блокиране на потребители, идващи от определен сайт

Ако собственикът на сайта не иска неговият ресурс да бъде посещаван от потребители, които са влезли от определен домейн и трябва да блокират достъпа, htaccess също е готов да помогне. Можете да блокирате трафик от определени сайтове, като използвате страница 403 или „откажете достъп“. Полезен тази настройкакогато връзки от сайтове със забранено съдържание се появят на вашия сайт и трафикът отива към вашия сайт през тях.

RewriteEngine на RewriteCond %(HTTP_REFERER) zapretnui-sait.com RewriteCond %(HTTP_REFERER) zapretnui-sait.com RewriteRule .* - [F]

Индексни страници - директива DirectoryIndex

1. Промяна на индексната страница, заредена по подразбиране

Обикновено индексните страници по подразбиране са index.htm, index.php или index.html, при достъп до директорията на сайта, тези файлове се търсят веднага. Но ако е необходимо, можете да предефинирате индексната страница към всяка друга. Подобна задача се решава и с помощта на файла htaccess.

DirectoryIndex mypage.html

Възможно е да посочите две или повече страници. Трябва да се има предвид, че те ще бъдат търсени в реда, в който са изброени в конфигурационния файл след директивата DirectoryIndex.

DirectoryIndex index.shtml index3.php index.html index.htm

Обработка на грешки - директива ErrorDocument

1. Персонализирана страница за грешка

Въпреки факта, че много сайтове все още използват стандартната страница за грешка 404, е малко вероятно да задоволи потребителя, който не е получил очаквания резултат и вместо това вижда информация, която е неразбираема за него. Необходимо е да се предложи страница, която да отговаря на основния стил, която да показва повече подробна информацияза причините за неуспешното изпълнение на заявката. За да направите това, можете да посочите в htaccess кой файл да се зареди вместо стандартната страница за грешка 404.

ErrorDocument 404 "/404.html"

2. Създаване на ваши собствени страници за грешки

За тези, които са уморени от обичайните страници, които показват описание на грешките, възникнали на сайта, има възможност да използват свои собствени заготовки. Просто трябва сами да създадете няколко *.html файла с необходимото съдържание и да направите запис във файла htaccess.

ErrorDocument 401 /errors401.html ErrorDocument 403 /errors403.html ErrorDocument 404 /errors404.html ErrorDocument 500 /errors505.html

За да знаете какво да поставите във всяка от страниците за грешки, ще опишем накратко техните значения.

  • 401 - Изисква се оторизация
  • 403 - Потребителят не е удостоверен, достъпът е отказан (забранено)
  • 404 - Исканият документ (файл, директория) не е намерен (Not Found)
  • 500 - Вътрешна грешка на сървъра - Грешка в скрипта или грешка в синтаксиса на .htaccess файл - (Вътрешна грешка в сървъра)

Дефиниция на кодиране

1. Определяне на кодировката, в която сървърът "дава" файлове

За да се предотврати показването на неразбираеми за него символи от потребителя, от които не е възможно да се прочетат думите, трябва да се посочи правилното кодиране. Дори и да няма етикет< Мета http-equiv = "Content-Type">текстът на страницата винаги ще бъде правилен и файлът htaccess отново ще помогне в това.

AddDefaultCharset UTF-8

2. Определяне на кодирането за качени файлове

Подобна ситуация може да възникне, когато потребител качи файл на сървъра и съдържанието му може да бъде прекодирано. За да се използва необходимото кодиране, htaccess трябва да съдържа код, показващ, че всички качени файлове трябва да бъдат отворени с UTF-8 кодиране.

CharsetSourceEnc UTF-8

Управление на достъпа до директории и файлове

1. Откажете достъп до всички файлове

Най-лесният начин да предотвратите преглеждането на файл е да зададете парола, но това не винаги е достатъчно. В някои случаи потребителят не трябва да има права да преглежда каквито и да било файлове или директории (например, трябва да заключите системни директории, промените в които могат да влошат работата на сървъра). Файлът htaccess съдържа част от кода, който лишава всички потребителски привилегии.

2. Разрешете достъп от конкретен IP

Всеки уеб разработчик знае за целта на файла .htaccess. На основно ниво ви позволява да контролирате достъпа до директории на сайтове. Но чрез добавяне на различни допълнителни кодови фрагменти към него, много други интересни неща могат да се правят с него.

Ако имате нужда от основна информация за предназначението на този файл, тогава можете да получите въведение в .htaccess от нашата статия ( Не преведох тази статия, тъй като има основи, има достатъчно от тях в рускоезичния сегмент на мрежата, но ако се прояви интерес, тогава тя също може да бъде преведена, за да завърши картината - приблизително. преводач), в който всички аспекти на неговото приложение са разкрити достатъчно подробно.

И така, полезни примери за употреба. htaccess:

1. Управление на достъпа до файлове и директории
Защитата с парола е едно нещо, но понякога може да искате напълно да блокирате потребителите от достъп до определен файл или папка. Това обикновено се отнася до системни папки, като включвания, до които приложенията трябва да имат достъп, но не и потребителите.

За да направите това, поставете този код във файл. htaccess и го запазете в директорията, до която отказвате достъп:

Отказва от всички
Имайте предвид обаче, че достъпът ще бъде блокиран за всички потребители, включително и за вас. Можете да отворите достъп за конкретен потребител, като въведете неговия IP адрес. Ето кода, от който се нуждаете за това:

Отказ на поръчка, отказ на разрешение от всички разрешения от xxx.xxx.xxx.xxx
където xxx. xxx. xxx. xxx е вашето IP. Можете да замените последните три цифри, за да зададете разрешените диапазони от IP адреси. Например, като вместо това напишете "0/12", вие ще посочите диапазон от IP адреси на една мрежа, което ще ви спести необходимостта да въвеждате всички разрешени IP адреси отделно в списъка.

Ако искате да блокирате достъпа до конкретен файл, включително самия него. htaccess, използвайте следния кодов фрагмент:

ред разреши, откажи отказ от всички
Ако искате да посочите конкретни IP адреси, на които трябва да бъде отказан достъп, избройте ги с разреши от.

Ако искате да блокирате достъпа до файлове от определен тип, използвайте този код:

Поръчка Разреши, Откажи Откажи от всички

2. Забрана за разглеждане на директории
За да предотвратите сърфирането в директорията на сайта, добавете следния код към .htaccess:

Опции Всички индекси
Ако по някаква причина искате да разрешите преглед на всички директории, използвайте кода:

Опции Всички + индекси

3. Ускорете времето за изтегляне чрез компресиране на файлове
Можете да компресирате файлове от всякакъв тип. Например, за да компресирате HTML файлове, добавете следния код:

AddOutputFilterByType DEFLATE текст/html
За компресиране на текстови файлове използвайте:

AddOutputFilterByType DEFLATE текст/обикновен
Можете също така да компресирате JavaScript или да активирате компресията за различни други типове файлове с командите:

AddOutputFilterByType DEFLATE приложение/javascript AddOutputFilterByType DEFLATE приложение/rss+xml
Освен това можете да компресирате всичките си JavaScript, HTML и CSS файлове с GZIP. За да направите това, използвайте следния код:

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 ^text\.* mod_gzip_item_include mime ^application/x-javascript.* mod_gzip_ite m_exclude mime ^ image\.* mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*

4. Защита на сайта от вмъкване на изображения от други ресурси
Ако искате да предотвратите добавянето на връзки към изображения от ресурси на трети страни, добавете следния код към файла .htaccess:

RewriteEngine на RewriteCond %(HTTP_REFERER) !^$ RewriteCond %(HTTP_REFERER) !^http(s)?://(www\.)?yourdomain.com RewriteRule \.(jpg|jpeg|png|gif)$ -
Не забравяйте да замените yourdomain.com с името на вашия домейн.

5. Блокиране на посетители от определен домейн
Ако не искате да виждате потребители от конкретен домейн на вашия сайт, тогава можете да откажете достъп до тях. Например потребители от нежелани ресурси (сайтове за възрастни, хакерски сайтове и т.н.) могат да бъдат пренасочени към страница 403 Forbidden. За да направите това, mod_rewrite трябва да бъде активиран, въпреки че обикновено е активиран по подразбиране. Добавете към .htaccess код:

RewriteEngine на RewriteCond %(HTTP_REFERER) bannedurl1.com RewriteCond %(HTTP_REFERER) bannedurl2.com RewriteRule .* - [F]
Трябва да замените bannedurl1.com и bannedurl2.com с домейните, които искате да поставите в черния списък. Можете да използвате флага, за да посочите, че въведеното име на домейн не е чувствително към главни и малки букви. Флагът [F] показва вида на действието, в този случай показвайки грешка 403 Forbidden. Ако искате да забраните няколко сайта, използвайте флагове за всеки домейн, ако искате да забраните един домейн, използвайте само .

6. Блокиране на заявки от определени браузъри
Ако вашите регистрационни файлове съдържат записи за посещение на определени браузъри (като ботове или паяци, имитиращи браузъра), можете да им попречите да имат достъп до вашия сайт, като добавите няколко реда към. htaccess:

RewriteEngine На RewriteBase / SetEnvIfNoCase Referer "^$" bad_user SetEnvIfNoCase User-Agent "^badbot1" bad_user SetEnvIfNoCase User-Agent "^badbot2" bad_user SetEnvIfNoCase User-Agent "^badbot3" bad_user Отказ от env=bad_user
Заменете badbot1, badbot1 и т.н. с имената на ботовете във вашия дневник. Това ще попречи на програми на трети страни да получат достъп до вашия сайт.

7. Кеширане на файлове
Кеширането на файлове е друг начин да накарате вашия сайт да се зарежда по-бързо. Ето какво трябва да напишете в .htaccess:

Набор от заглавки Cache-Control "max-age=2592000"
Можете да добавите повече типове файлове (или да премахнете някои от тях) от списъка с файлове, изброени в този пример. Можете също така да посочите колко дълго се кешират файловете (в секунди) с променливата max-age.

8. Деактивирайте кеширането за различни типове файлове
Ако не искате да кеширате определени типове файлове, можете да изберете да не ги включвате в списъка. Понякога обаче файловете могат да се съхраняват в кеша дори без да са изрично изброени в списъка, в който случай можете да деактивирате кеширането за тях поотделно. Най-често трябва да деактивирате кеширането за динамични файлове, като например скриптове. Пример за кода, необходим за това:
Заглавието деактивира Cache-Control
Просто посочете типовете файлове, за които искате да деактивирате кеширането.
9. Прескочете диалоговия прозорец за изтегляне
По подразбиране, когато се опитате да изтеглите файл от уеб сървър, се показва диалогов прозорец, който ви пита дали искате да запишете файла или да го отворите. Този диалогов прозорец е особено досаден при изтегляне на големи медийни или PDF файлове. Ако файловете, които качвате на сървъра, са само за изтегляне, можете да улесните живота на потребителите, като зададете изтегляне като действие по подразбиране. Добави към. htaccess следното:

AddType application/octet-stream .pdf AddType application/octet-stream .zip AddType application/octet-stream .mp3

10. Преименувайте файла .htaccess
Ако по някаква причина искате да преименувате файла .htaccess, можете да го направите. На теория преименуването на файла .htaccess не би трябвало да създава проблеми с приложенията, работещи на вашия сървър, но ако забележите скриптови грешки след преименуването на файла, просто го преименувайте обратно.

AccessFileName htac.cess
Освен това трябва да актуализирате всички записи, които споменават файла .htaccess или ще получите много грешки.

11. Подмяна на началната страница на сайта
Ако искате да зададете нестандартна начална страница (index.html, index.php, index.htm и т.н.), добавете следния код към вашия .htaccess файл:

DirectoryIndex mypage.html
Заменете mypage.html с URL адреса на страницата, която искате да използвате като начална страница.

12. Пренасочване към защитена HTTPS връзка
Ако използвате HTTPS и искате да пренасочите потребителите към защитени страници на вашия сайт, добавете следните редове към вашия .htaccess файл:

RewriteEngine On RewriteCond %(HTTPS) !on RewriteRule (.*) https://%(HTTP_HOST)%(REQUEST_URI)

13. Ограничаване на максималния размер на качените файлове в PHP, максималния размер на предаваните данни, максималното време за изпълнение на скриптове и др.
.htaccess ви позволява да зададете някои стойности, които пряко засягат работата на PHP приложенията. Например, ако искате да зададете ограничение за размера на качените файлове в PHP, за да не задръствате хостинга с големи файлове:

php_value upload_max_filesize 15M
Можете да зададете произволна стойност, в примера размерът на файла е ограничен до 15M (MB). Освен това можете да ограничите максималния размер на данните, прехвърляни по време на зареждане в PHP:

php_value post_max_size 10M
Можете да замените 10M с каквато стойност желаете. Ако нямате нужда скриптове да се изпълняват през цялото време, можете да ограничите времето за тяхното изпълнение с реда:

php_value max_execution_time 240
240 - време за изпълнение (в секунди), след което скриптът ще бъде спрян, можете да промените тази стойност на всяка друга. И накрая, ако искате да ограничите времето на скрипта за анализиране на необработени данни, използвайте следния код:

php_value max_input_time 180
Задайте 180 на каквото желаете време (в секунди).

14. Скриване на типове файлове
Понякога искате потребителите да не знаят какви типове файлове има на вашия сайт. Един от начините да скриете тази информация е да накарате всичките си файлове да се показват като HTML или PHP файлове:

Приложение ForceType/x-httpd-php Приложение ForceType/x-httpd-php
И това е само част от това, което .htaccess може да прави, но като цяло ви позволява да правите много повече. Например, можете да настроите страниците на вашия сайт да се превеждат автоматично, да зададете часовата зона на сървъра, да премахнете WWW от URL адресите или да използвате фантастични изгледи на директории и т.н. Но във всеки случай, преди да започнете да експериментирате с файла .htaccess, винаги пазете резервно копие на оригиналния .htaccess, така че ако възникнат проблеми, можете бързо да възстановите работата на сайта.

Като напишете адреса в лентата на браузъра, вие получавате файлове на вашия компютър, които браузърът показва. Уеб сървърът управлява кои файлове и как да ви показва (изпраща). Има два най-популярни сървъра: IIS и .

Както всяка програма, уеб сървърът има определени настройки. Но вие, като потребител на Apache, можете (и най-вероятно няма, ако говорим за виртуален хостинг) да имате право да промените конфигурацията на Apache чрез основните му файлове, които се отнасят за всички потребители на този сървър. Но можете да промените някои конфигурационни файлове, които се отнасят само за вашия сайт. Един от тези файлове е .htaccess

Това е гъвкавият конфигурационен файл на уеб сървъра на Apache. „Гъвкав“ означава, че щом промените нещо в този файл, промените незабавно влизат в сила. С него можете да замените много директиви от файла httpd.conf(този файл е основният конфигурационен файлСървърът на Apache и неговите действия се отнасят изцяло за всички потребители на това копие на Apache). В случаите, когато нямате достъп до конфигурационния файл на Apache (същото виртуален хостинг), този файл ще ви помогне.

Този файл не е достъпен за уеб потребителя от браузър. Ако файл. htaccessсе намира в главната директория на сървъра, тогава действието му се прилага за целия сървър, с изключение на тези папки, където се намира друг файл. htaccess(и освен всички папки "под" тази папка с втората. htaccess).

Структурата на вашите директории на сървъра е следната:

|-потребител | | | -потребител1 | | | -потребител2 | |-данни | | | -данни1 | | | -данни2 |

Справочници потребител1И потребител2ще бъдат вложени спрямо директорията потребител. Ако поставим в директория wwwфайл. htaccess, тогава неговият ефект ще се приложи автоматично към директориите потребител1И потребител2.

Към директория даннисложи друг файл. htaccess, в сравнение с това, което е в директорията потребител. А за директориите data1 и data2 файлът .htaccess, намиращ се в data, ще работи.