Как да променя ограничението за използване на RAM в PHP? Откажете достъп до файлове с няколко вида разширения.

htaccess файл - настройки и примери за използване - 4.1 от 5 въз основа на 18 гласа

Файлът 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

Файлът се нарича "точка" 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://vash-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://vash-sait.ru/info.html

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

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

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

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

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

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

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

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

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

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

Много чести ситуации са, когато URL адресът завършва с името на директорията: http://vash-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- по един за всяка директория на вашия сайт.

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

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

Тъй като файлът .htaccess е сервизен файл, той не е достъпен за уеб потребителя от браузъра.

Структурата на вашите директории на сървъра е следната: (директориите, в които файлът .htaccess не може да бъде инсталиран, са маркирани в сиво

/начало/st1331/ |+-- /www/ (основната директория на вашия уеб сървър) | |

| +-- .htaccess | |

| +-- /www/новини/ | | | | | +-- .htaccess | | +-- main.html | | |
| | + /www/news/2003.10/ | | | | | | | + .htaccess | | |
| | + /www/news/2003.11/ | | | +-- /www/данни/ | | |
| | +-- .htaccess | | +-- .htpasswd | |
| +-- /www/images/ | | +-- /www/данни/ | | |
+-- /home/st1331/cgi-bin (за cgi скриптове) |
+-- /дневник (услуга) |
+-- /статистика (услуга) | +-- /www/данни/ | | |
| | +-- .htaccess | | +-- .htpasswd | |
Действието .htaccess автоматично се прилага към всички поддиректории. По този начин ще работят следните .htaccess файлове: | +-- /www/данни/ | | |
Справочник
Valid.htaccess | | | + .htaccess | | |

/www/

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

/www/.htaccess

/www/новини/ /www/.htaccess

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

/www/.htaccess

Пренасочване /oldsite/ http://www.site.ru/ Пренасочване /oldsite/ www.site.ru/

Коментарите са редове, започващи със символа #.

В изрази, които можете да използвате променливи на средата, например %(REMOTE_ADDR) или %(HTTP_REFERER).

Файлът .htaccess трябва да бъде написан в UNIX формат - това означава, че захранването на реда трябва да бъде указано в него с един знак (0x0A), а не с два (0x0D 0x0A), както в DOS или Windows

Определяне на обхвата на директивите

Файлова директива

Описание: директива файлове
Синтаксис: име на файл> ...
име на файлиме на файл
Пример:

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

Директива FilesMatch

Описание: директива файловеограничава директивите до един файл
Синтаксис: регулярен израз> ...
regexp: регулярен израз (образец), описващ група от файлове.
Пример:

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

Пренасочвания (пренасочвания)

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

външно пренасочване(каже на браузъра да зареди различен URL).
Синтаксис: Пренасочване [ състояние] URL-път URL адрес
състояние
URL-път
URL адрес: URL, където трябва да се направи пренасочването

Време за пренасочване / http://www.iho.ru/newyear.html Време за пренасочване /index.html http://www.iho.ru/newyear.html Постоянно пренасочване /prices2002.html http://www.iho.ru /цени2003.html

Директива RedirectMatch

Описание: Пренасочва посетител, искащ документ, към различен URL адрес. Изпълнява външно пренасочване(каже на браузъра да зареди различен URL). Директивата е подобна на пренасочване, с изключение на това, че вместо адреса на искания документ се записва регулярен израз (образец).
Синтаксис: Пренасочване [ състояние] regexp URL адрес
състояние: незадължително поле, дефинира кода за връщане, валидни стойности: постоянно (301 - документът е преместен за постоянно), temp (302 - документът е преместен временно), seeother (303 - вижте друг), изчезнал (410 - премахнат).
URL-път: Локалната част от URL адреса на искания документ.
regexp: регулярен израз (образец), описващ група URL адреси.

RedirectMatch (.*)\.gif$ http://www.myserver.com$1.png RedirectMatch (.*\.jpg)$ http://www.myanother.com$1

Пример: различни страници, в зависимост от IP адреса на посетителя. В примера посетителите от адрес 192.168.1.1 се пренасочват към друга страница

RewriteCond %(REMOTE_ADDR) 192.168.1.1 RewriteRule ^/$ /anoter_index_pahe.html [L]

Пример: различни страници, в зависимост от свързващата страница. В примера посетителите, идващи от страницата http://www.partner.ru/ вместо /prices.html получават /anoter_prices.html

RewriteCond %(HTTP_REFERER) http://www.partner.ru/recep.html RewriteRule ^/prices.html$ /anoter_prices.html [L]

Пренасочване на посетителя при заявка на определени страници:

Това вече е за всички мрежови вирусии скенери. Сега всяка заявка с адрес /_vti_bin ще бъде автоматично пренасочена към Microsoft:

Пренасочване /_vti_bin http://www.microsoft.com пренасочване /скриптове http://www.microsoft.com пренасочване /MSADC http://www.microsoft.com пренасочване /c http://www.microsoft.com пренасочване / d http://www.microsoft.com пренасочване /_mem_bin http://www.microsoft.com пренасочване /msadc http://www.microsoft.com RedirectMatch (.*)\cmd.exe$ http://www. microsoft.com $1

Ограничения за достъп (пароли)

Директива за поръчка

Описание: Задава реда на действие на директивите и
Синтаксис: Ред ред
редможе да приеме стойностите Deny,Allow или Allow,Deny
По подразбиране: Отказ на поръчка, Разрешаване

Директива за отказ

Описание: Отказва на определени клиенти достъп до ресурси.
Синтаксис: Отказ от всички| домакин
домакин

Разрешаване на директива

Описание: Позволява на конкретни клиенти достъп до ресурси.
Синтаксис: Отказ от всички| домакин
домакинможе да приема стойности на IP адрес или име на хост.

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

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

Пример: Разрешаване на достъп за конкретни IP адреси

Отказ на поръчка, Разрешаване Отказ от всички Разрешаване от .iho.ru Разрешаване от 192.168.1.1

Пример: отказ на достъп до определени IP адреси

Поръчка Разрешаване, Отказ Разрешаване от всички Отказ от .iho.ru Отказ от 192.168.1.1

Пример: отказ на достъп до конкретен файл. Примерът отказва достъп до файла .htpasswd за всички посетители

Пример: отказ на достъп до определена групафайлове. Примерът отказва достъп до файлове с разширения "lib" и "pm" за всички посетители

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

Задаване на парола за достъп

Директива AuthName

Описание: Стойността AuthName ще се покаже на посетителя и може да се използва за изясняване на заявката за оторизация.

Директива AuthType

Описание: Тази директива избира типа удостоверяване. възможно следните видове: Основен и обобщен.
Синтаксис: AuthType Basic|Digest

Директива AuthUserFile

Описание: Стойността AuthUserFile указва името на файла, съдържащ пароли за удостоверяване на потребителя. Файлът с парола може да бъде създаден с помощната програма htpasswd. Пътят до файла с паролата се задава спрямо корена на уеб сървъра. Съхранявайте файла с паролата в папка, която не е достъпна за потребителите..
Синтаксис: AuthUserFile файл-път

Изискване на директива

Описание: Определя потребители, които имат достъп
Синтаксис: Изискване потребителско име|валиден-потребител
Посочване валиден-потребителпозволявате достъп на всички потребители, изброени във файла с пароли.

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

AuthName "Restricted area" AuthType Basic AuthUserFile /home/st1331/www/data/.htpasswd Изискване valid-user

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

AuthName "Много ограничена зона" AuthType Basic AuthUserFile /home/st1331/www/data/.htpasswd Изискване antonio solo marina

Пример: ограничаване на достъпа до определени файлове (в този пример достъпът до zip архиви е ограничен)

AuthName "Само валидни потребители могат да изтеглят zip файлове." AuthType Basic AuthUserFile /home/st1331/www/data/.htpasswd Изискване valid-user

Пример: Ограничете достъпа до един файл (в този пример достъпът до файла .htpasswd е ограничен)

AuthName "Достъпът е ограничен." AuthType Basic AuthUserFile /home/st1331/www/data/.htpasswd Изискване antonio solo

Управление на сървъра

Директива DirectoryIndex - променя страницата по подразбиране (начална).

Описание: Позволява ви да промените страницата, която ще се показва при достъп до директория
Синтаксис: DirectoryIndex страница [страница]
страница- име на началната страница. Могат да бъдат посочени няколко страници.
Пример:

DirectoryIndex main.html index.php test.shtml

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

Описание: Позволява ви да зададете алтернативни страници за грешка
Синтаксис: ErrorDocument код URL-път
URL-път- адрес на локална страница
код- код на грешка. Най-типичните кодове за грешки:
401 - Изисква се оторизация
403 - потребителят не е удостоверен, достъпът е отказан (забранено)
404 - исканият документ (файл, директория) не е намерен (Not Found)
500 - вътрешна грешка на сървъра - грешка в скрипта или грешка в синтаксиса на файла .htaccess - (вътрешна грешка на сървъра)

ErrorDocument 401 /401.html ErrorDocument 403 /403.html ErrorDocument 404 /404.html ErrorDocument 500 /500.html

Директива AddOutputFilter - настройка на филтър (SSI)

SetOutputFilter ВКЛЮЧВА

Директива SetHandler - инсталиране на манипулатор (PHP, Parser)

Описание: инсталира манипулатор за файлове в указаната директория
Синтаксис: SetHandler име на манипулатор

SetHandler php-скрипт

Директива AddHandler - инсталиране на манипулатор (PHP, Parser)

Описание: инсталира манипулатор за файлове от посочения тип
Синтаксис: AddHandler име на манипулатор разширение на името на файла

AddHandler php-скрипт .html AddHandler парсер-скрипт .htm

AddDefaultCharset директива - инсталиране на манипулатор (PHP, Parser)

По подразбиране сървърното кодиране е зададено на Windows-1251

Добавяне на знаци по подразбиране koi8-r

Как да принудя Apache да обработва SSI директиви?

SSI ви позволяват да "сглобите" страница от части. В една част имате кода на менюто, в друга кода за горната част на страницата, в третата - за дъното. И посетителят вижда обикновена страница, който се състои от всеки код, който влиза във вашите части. Необходими настройки в httpd.conf: В блока, започващ с и крайДобавете Включва към реда Индекси на опции. След това във файла .htaccess записваме:

AddOutputFilter Включва .html .htm

Как да блокирам показването на съдържанието на директорията, ако няма индекс файл?

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

htpasswd

Директивата htpasswd се използва за създаване на файл с пароли, които могат да се използват за удостоверяване на потребителите с уеб сървър.

Пример: създаване на файл с пароли и добавяне на 1 име към него:

Htpasswd -c име на файл потребителско име

Пример: Добавяне или промяна на файл с парола

Htpasswd Име на файл потребителско име2

Добавих файла .htaccess и сега сървърът дава грешка 500.

защо
500-та грешка може да бъде причинена от следните причини:
1. неправилен синтаксис.htaccess

2. файлът .htaccess е написан във формат Windows, но трябва да бъде написан в UNIX формат Apache - най-често срещаните HTTP сървър . Разпространява се безплатно, включително изходния код.Поддържани скриптове CGI), (включително, FastCGI, PHP Perl Java, . Удостоверяване -, основенсъобщение-дайджест - най-често срещаните TLS (SSL)

.htaccess. От април 1996 г. е най-популярният 2. файлът .htaccess е написан във формат Windows, но трябва да бъде написан в UNIX форматв интернет, през август 2007 г. той работи на 51% от всички уеб сървъри. - допълнителен конфигурационен файл за уеб сървър, , както и подобни сървъри.Позволява ви да зададете голям брой допълнителни параметри и разрешения за работата на уеб сървъра за отделни потребители (както и за различни папки на отделни потребители), като напр.

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

Файл .htaccessмогат да бъдат поставени във всяка директория на сайта. Директивите на този файл засягат всички файлове в текущата директория и всички нейни поддиректории (освен ако тези директиви не са заменени от директиви на базови файлове .htaccess).

Директиви .htaccessпредостави на потребителя богат изборопции за персонализиране на вашия уебсайт, включително:










Можете да видите списък с всички налични директиви.

HTTP_ACCEPT

Описва предпочитанията на клиента относно вида на документа.

REMOTE_ADDR

IP адрес на посетителя.

REMOTE_HOST .

Адресът на посетителя в нормална форма - напр. rt99.net.ru .

REMOTE_IDENT

Отдалечено потребителско име. Има формат name.host, например, kondr.www.rtt99.net.ru

REMOTE_USER

Същото като REMOTE_IDENT, но съдържа само името. Пример: кондра

REQUEST_METHOD

Позволява ви да определите вида на заявката (GET или POST). Трябва да се анализира, т.к

определя по-нататъшния метод за обработка на информацията.

SCRIPT_FILENAMEПълен път

към уеб страница на сървъра.

PATH_INFO

Съдържа всичко, което е предадено в скрипта.

QUERY_STRING . Разпространява се безплатно, включително изходния код.Съдържа низа, предаден като заявка при извикване

сценарий.

AUTH_TYPE

Използва се за идентифициране на потребителя

DOCUMENT_ROOT

Съдържа пътя до основната директория на сървъра.

SERVER_ADMINПощенски адрес

собственик на сървъра, посочен по време на инсталацията. SERVER_NAME

SERVER_ADDR

IP адресът на вашия уебсайт.

SERVER_PORT

Портът, на който работи Apache.

SERVER_PROTOCOL Версия HTTP

протокол.

СЪРВЪРЕН_СОФТУЕР Име на сървъра, например

Apache/1.3.2 (Unix)
TIME_YEAR
TIME_MON
TIME_DAY
TIME_HOUR
TIME_MIN
TIME_SEC
TIME_WDAY

ВРЕМЕ

Променливи, проектирани да работят с времето в различни формати.

API_VERSION Това е версията API 2. файлът .htaccess е написан във формат Windows, но трябва да бъде написан в UNIX форматмодул (вътрешен интерфейс между сървъра и модула) в текущата сървърна компилация, която е дефинирана в.

включва/ap_mmn.h

THE_REQUEST ВерсияПълна линия -заявка, изпратена от браузъра до сървъра (т.е."GET /index.html HTTP/1.1"

).

Той не включва допълнителни заглавки, изпратени от браузъра.

REQUEST_URI

Ресурсът, поискан в реда за HTTP заявка. REQUEST_FILENAMEПълен път към

файлова система

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


perl -съвместим регулярен израз с някои допълнения:Всички тези проверки също могат да бъдат с префикс

RewriteEngineвключва или изключва механизма за преобразуване. Ако е настроено на изключено, този модул изобщо не работи.
Имайте предвид, че по подразбиране настройките за трансформация не се наследяват. Това означава, че трябва да имате RewriteEngine on директива за всеки виртуален хост, в който искате да използвате този модул. RewriteEngineСинтаксис

изглежда така: Използвайте за комбиниране на условия в правилаИЛИ вместоИ

. Типичен пример е пренасочване на заявки за поддомейни към отделни директории. За издаване на различни сайтове заразлични браузъри , според„Потребителски агент:“


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

. Flags е следният списък с флагове, разделени със запетаи:
"пренасочване|R [=код]"
(предизвиква пренасочване) Префикс в заместване на изглед http://thishost[:thisport]/ URL адрес(създаване на нов от всякакви URI Версия) стартира външно пренасочване (пренасочване). Ако няма код, в замяната отговорът ще бъде с статус 302 (ВРЕМЕННО ПРЕМЕСТЕН). За да спрете процеса на преобразуване, трябва също да напишете флаг.

"Л"
"забранено|F [=код]"
(прави URL адреса забранен) URL адресТова прави сегашният Версиязабранено, например незабавно се изпраща отговор до клиента с статус 403 (ЗАБРОЕН). Използвайте този флаг в комбинация с подходящия RewriteConds URL адресза блокиране

според някои критерии.
"изчезнал|G [=код]"
(прави URL адреса „мъртъв“) URL адресТози флаг прави тока Версия"мъртъв", т.е. незабавно изпратен отговор със статус 410 (ИЗЧЕЗНА

). Използвайте този флаг, за да маркирате страници, които вече не съществуват, като „мъртви“.
"прокси|P [=код]"
(обажда се на прокси) Този флаг маркира частта със заместващ знак катовътрешна заявка прокси и веднага (т.е. процесът на преобразуване спира тук) го прекарва през прокси модула.Използвайте този флаг, за да постигнете по-мощно изпълнение на директивата

ProxyPass
, който интегрира част от съдържанието на отдалечени сървъри в пространството на имената на локалния сървър.
"последен|L [=код]" URL адрес(последно правило)

Спрете процеса на преобразуване на този етап и не прилагайте други правила за преобразуване. Използвайте този флаг, за да не конвертирате тока
други последващи правила за трансформация.
"следващ|N [=код]" URL адресотново съответства на определени условия, но не е оригинален URL адрес, А URL адресизлезе от последното правило за преобразуване. Използвайте този флаг, за да рестартирате процеса на преобразуване, т.е.

безусловен преход към началото на цикъла.
"верига|C [=код]"
(връзка със следващото правило)

Този флаг свързва текущото правило със следващото (което от своя страна може да бъде свързано със следващото и т.н.). Това има следния ефект: ако правилото е съвпадащо, процесът продължава нормално, т.е. знамето няма ефект. Ако дадено правило не отговаря на условието, всички следващи свързани правила се пропускат.
"тип|T=MIME-тип [=код]"
(принудително задайте MIME тип) Принудително инсталиранеТип MIME Принудително инсталиранецелеви файл в . Например, това може да се използва за симулация mod_alias директиви ScriptAlias което принуждава всички файлове в показаната директория да се зададат MIME тип равен.

"приложение/x-httpd-cgi"
"nosubreq|NS [=код]"
(използва се само в случай на невътрешна подзаявка) 2. файлът .htaccess е написан във формат Windows, но трябва да бъде написан в UNIX форматТози флаг инструктира машината за преобразуване да пропусне директивата, ако текущата подзаявка е вътрешна подзаявка. Например вътрешни подзаявки в

възниква, когато mod_include се опитва да получи информация за възможните файлове по подразбиране за директории (index.xxx). При подзаявките това не винаги е полезно и понякога дори причинява проблеми при работата на набора от директиви за трансформация. Използвайте този флаг, за да изключите някои правила.
"nocase|NC [=код]"
(пренебрегване на главни и малки букви) URL адрес.

Това прави шаблона нечувствителен към главни и малки букви, т.е. няма разлика между "A-Z" и "a-z", когато моделът се прилага към текущия
"qsappend|QSA [=код]"
(добавете низ за заявка) URL адресТози флаг инструктира машината за трансформация да добавя, вместо да заменя, низове от заявки

към съществуващия, в линията за заместване. Използвайте това, когато искате да добавите допълнителни данни към низа на заявката, като използвате директиви за трансформация.
"noescape|NE [=код]"

(не избягвайте URI при извеждане) Това знаме не дава mod_rewrite от всякаквиприложете нормални правила за бягство към резултата от трансформацията.обикновено,

специални знаци .htaccess(като "%", "$", ";" и т.н.) ще бъдат екранирани от техните шестнадесетични замествания (съответно "%25", "%24" и "%3B"); този флаг предотвратява това да се случи. Това знаме не даваАко в поддиректории в

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

Когато наследявате правила от горни директории и добавяте нови, които са уникални за тази директория, трябва да зададете следното в началото: " RewriteEngine включен"И" RewriteOptions наследяват" - последната директива казва на сървъра да продължи.

Примери за използване Това знаме не даваможете да видите

Ако сте инсталирали операционна системасемейства Windows, Можете да се свържете със сървъра, като използвате SSH(можете да намерите инструкции за свързване) и използвайте помощната програма htpasswd.

Стартиране htpasswdбез параметри ще видим:

beget@ginger ~ # htpasswd
Употреба:
htpasswd [-cmdps] потребителско име за файл с парола
htpasswd -b passwordfile потребителско име парола
-c Създаване на нов файл.
ражда @ джинджифил ~ #

Всички параметри на тази команда няма да бъдат обхванати тук, но можете да прочетете подробностите сами, като стартирате htpasswd V unix обвивка , или като прочетете съответната страница с документация на Apache.

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

И сега искаме да добавим още един потребител. Тъй като вече имаме файл с пароли, просто няма да използваме превключвателя "-c":

Посочване валиден-потребителРазрешавате достъп до всички потребители, изброени във файла с пароли.

Нека дадем пример за достъп до определени потребители от файл с пароли .htpasswd


AuthName" Защитена зона, трябва разрешение" AuthType Basic AuthUserFile /home/t/test/.authfile изисква valid-user

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

Инструкции за файла .htaccess

Файлът .htaccess ви позволява да промените много от настройките на вашия сайт - както настройките на уеб сървъра на Apache, така и опциите на PHP. Директивите, посочени във файла .htaccess, се прилагат за директорията, в която се намира, както и за всички поддиректории (с едно изключение, което ще бъде обсъдено по-долу), включително поддомейни (тъй като директориите на поддомейни са поддиректории на основния сайт) . По правило .htaccess файлът се създава в главната директория на сайта и понякога в директории, които изискват специфично поведение на уеб сървъра (забрана за показване на списък с файлове, активиране на SSI, оторизация и др.).

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

Защо новосъздаденият .htaccess файл не се показва в списъка с файлове?

Някои FTP клиенти считат файловете, започващи с точка, за скрити и не ги показват по подразбиране. В такива случаи, за да видите файла .htaccess, трябва да активирате настройката „Показване на скритите файлове“ в настройките на FTP клиента.

Защо файлът .htaccess, намиращ се в основата на сайта, не работи в поддиректории?

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

Уебсайтовете обикновено съдържат голям брой статични файлове. Това са файлове, които не изискват стартиране на скриптове, за да ги показват: снимки, музика, видеоклипове, css, javascript, прости html страници. За да се ускори работата на сайтовете, те се обработват, заобикаляйки основния уеб сървър и без да се анализират .htaccess файлове.

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

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

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

Защо поддомейнът показва грешка?

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

RewriteEngine изключен

Защо 403 Forbidden се появява в браузъра при отваряне на директория на уебсайт?

При отваряне на директория без посочване конкретен файлуеб сървърът търси файлове index.htm, index.html, index.php за показване (индексни файлове). Ако няма индексни файлове, сървърът връща грешка 403 Forbidden, тъй като показването на списък с файлове в директорията е забранено по подразбиране.

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

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

Инсталиране на индекс файл за сайт

По подразбиране уеб сървърът счита следния файл за индекс файл на вашия сайт (по ред на приоритет): index.html, index.php.

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

DirectoryIndex име на файл

Например, следната инструкция инструктира уеб сървъра, когато осъществява достъп до сайта, да отвори скрипта на Език Perl, разположен в директорията cgi-bin на вашия сайт:

DirectoryIndex /cgi-bin/engine.pl

Как да активирам показването на грешки в PHP?

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

Php_value display_errors 1

Как да променя максималния размер на файла за качване в PHP?

Максималният размер на качените файлове е посочен в .htaccess с помощта на две директиви:

Php_value upload_max_filesize 20M php_value post_max_size 20M

Вместо 20M, посочете желания размер на лимита. Стойността на тези параметри не може да бъде по-голяма от 50M. Моля, имайте предвид, че символът "M" (на латиница M) е посочен заедно със стойността.

Как да кажа на PHP интерпретатора да обработва повече от просто .php файлове?

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

AddType application/x-httpd-php .phtml

Как да промените времето за задържане на PHP сесия

Промяната на времето за съхранение на сесията може да е необходима, например, ако искате данните за влизане на потребителя на вашия сайт да се съхраняват по-дълго. По подразбиране времето за съхранение на сесията е 1440 секунди (24 минути), бисквитката с идентификатор на сесия е докато потребителят затвори браузъра.

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

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

# Създайте отделна директория за съхраняване на сесиите на вашия сайт, # например домейни/ВАШИЯ_САЙТ/tmp. Това е необходимо, така че PHP да не изтрива сесиите на сайта # при изчистване на стари сесии на други сайтове, работещи в акаунта.

# Задайте директорията за съхранение на сесии за сайта, като използвате session.save_path. php_value session.save_path /home/YOUR_LOGIN/domains/YOUR_SITE/tmp # Задайте максималния живот на сесията в секунди.#604800 - 1 седмица.

  • php_value session.gc_maxlifetime 604800 # Задайте живота на бисквитката, която съхранява ID на сесията # в браузъра на потребителя.
  • php_value session.cookie_lifetime 604800

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

голям брой

сесии, препоръчваме да използвате алтернативни механизми за тяхното съхранение и изчистване, например:

Вместо “.ssi .html”, посочете файловите разширения, в които искате да обработвате Насоки на SSI.

Как да конфигурирам изпълнението на CGI скриптове?

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

  1. В папката, където трябва да изпълните CGI скриптове, създайте файл .htaccess като: Options +ExecCGI
    AddHandler cgi-script .cgi .pl Вместо „.cgi .pl“, посочете списък с разширения, които трябва да се обработват като скриптове.
  2. Качете скриптовете в папка.
  3. Използвайки вашия файлов мениджър, задайте разрешения за изпълнение (755) за скрипт файлове.

Как да променя ограничението за използване на RAM в PHP?

За да промените лимита на RAM, използвайте следната директива в .htaccess:

Php_стойност памет_лимит 128M

Вместо 128M, посочете желания лимитиран размер. Моля, имайте предвид, че символът "M" (на латиница M) е посочен заедно със стойността.

Как да се уверите, че сайтът винаги се отваря с основното име?

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

RewriteEngine на RewriteCond %(HTTP_HOST) ^www.site.com RewriteRule ^(.*) http://site.com/$1

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

Какви други PHP настройки могат да бъдат зададени в .htaccess?

Документацията на уебсайта на разработчика съдържа пълен списък с PHP директиви. Във файла .htaccess можете да променяте директиви, чиято стойност на колоната за промяна съответства на PHP_INI_PERDIR или PHP_INI_ALL.

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

Предупреждение:
От WEB сървъра на Apache файловете с точка в началото на името често не са изброени и не се показват чрез FTP клиенти.

За пълен контрол над такива файлове е необходим физически достъп до сървъра или пълноценен отдалечен клиент. Чрез FTP ще работите на сляпо, изпращайки команди до сървъра чрез командния ред (мисля, че командата "помощ" в командния ред няма да е излишна). Файлът .htaccess е конфигурационен файл, който дава възможност за персонализиране на работата на сървъра на ниво отделни директории: задаване на права за достъп до файлове в директории, промяна на имената на индексни файлове, независима обработка на отговорни кодове HTTP протокол, променете адресите на заявените страници.

Забележка:
Файл .htaccessмогат да бъдат поставени във всяка директория. Директивите на този файл засягат всички файлове в текущата директория и всички нейни поддиректории (освен ако тези директиви не са заменени от директиви на .htaccess файлове в поддиректории).
Промените, направени в .htaccess файловете, влизат в сила незабавно и не изискват рестартиране на сървъра, за разлика от промените, направени в основния конфигурационен файл httpd.conf.
За да се използват файловете .htaccess, са необходими подходящи настройки в основния конфигурационен файл httpd.conf, където директивите, които ще позволи на файла .htaccess да замени конфигурацията на уеб сървърав каталога. Списъкът с тези директиви се определя от директивата AllowOverride.

Директивата AllowOverride може да включва една или комбинация от следните директиви:
AuthConfig, FileInfo, Indexes, Limit, Options, All, None
За да дадете на файловите директиви .htaccess максимални права за модифициране на директиви, стойността на директивата AllowOverride във файла httpd.conf трябва да е равна на All. Това е стойността по подразбиране.
AllowOverride All
Можете да предотвратите отмяната на всякакви директиви в конфигурационните файлове.htaccess, като използвате стойността None:
AllowOverride Няма

коментар:
Името на конфигурационния файл може да бъде променено и например да го наричате не .htaccess, а access.conf. Името на този файл се определя от директивата AccessFileName във файла httpd.conf. Промяната на името на конфигурационния файл .htaccess не се препоръчва, т.к това може да усложни по-нататъшната поддръжка на сървъра.

Синтаксис.htaccess

Преди да разгледаме примерите, нека да разгледаме синтаксиса на директивите в .htaccess файловете.

Пътищата към файловете и директориите трябва да бъдат посочени с помощта на абсолютно адресиране от корена на дяла.
Например:
/home/users/vasya999/public_html/a_content/masters/

Когато се посочват абсолютни URL адреси, трябва да се посочват протоколи, например:
Пренасочване / http://www.site.ru

Във файловете .htaccess не се допускат интервали в пътищата до файловете и в имената на самите файлове, т.к. това води до генериране на код за отговор 500 - грешка в конфигурацията на сървъра: "Вътрешна грешка на сървъра".

Примери за използване на .htaccess

Индексни страници

Индексните файлове са файловете, които се изтеглят по подразбиране, ако в URL адреса не е указан ресурс. Например:
http://site.ru/ - ресурсът не е посочен (файл, страница), но сървърът все пак ще зареди нещо като index.html.

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

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

Често е необходимо да се предотврати показването на списък с файлове в директория, ако индексният файл не е посочен или липсва, например, за да се предотврати показването на съдържанието на директория, съдържаща изображения. Ако такава забрана не е зададена, тогава потребител, който има директен достъп до такава директория, ще получи списък с всички изображения. Но ние ще добавим директива
Опции – Индекси

Обработка на кодове за отговор на уеб сървър

Никой уебсайт не е застрахован от грешки. Повечето често срещана грешкаследва връзка към несъществуваща страница. В този случай Apache генерира код за отговор 404 и показва автоматично генерирана страница за грешка. Наличност несъществуващи странициправи лошо впечатление на посетителите на сайта. Това впечатление може да се изглади, ако вместо това стандартни страници, заместител собствени страницисъс съобщение за грешка. Директивата ErrorDocument е отговорна за присвояването на страници, които обработват HTTP кодове за отговор.
ErrorDocument 401 /401.html ErrorDocument 403 /403.html ErrorDocument 404 /404.html ErrorDocument 500 „Забранено“
След директивата ErrorDocument трябва да посочите кода на отговор и страницата, към която посетителят да бъде пренасочен, когато се появи този код на отговор.

Освен това вместо адреса на страницата можете да посочите обикновен текстов отговор в кавички.

Дешифриране на няколко кода за отговор на сървъра (кодове за състояние на HTTP отговор):
Грешка 401 - Заявката изисква удостоверяване на потребителя (Неоторизирано).
403 грешка - Достъпът до искания ресурс е забранен (Forbidden).
404 грешка - Исканият документ не е намерен на сървъра (Not Found).
Грешка 500 - Грешка в конфигурацията на сървъра или външната програма (вътрешна грешка на сървъра).

Разрешаване или забрана на изпълнение на PHP код

Разрешение за изпълнение. Обикновено PHP кодът в HTML се изпълнява във файлове с разширения php. Понякога възникват ситуации, когато е необходимо да се изпълни PHP код във файлове с различно разширение. В този случай можете да инструктирате уеб сървъра да изпълнява PHP код не само във файлове с php разширение, но и във файлове с разширение html.
RemoveHandler .html .htm AddType application/x-httpd-php .php .htm .html .phtml
Първият ред премахва манипулатора за файлове с разширения html и htm, а вторият ред казва на сървъра да използва манипулатора на PHP за файлове с разширения htm и html.

Предотвратяване на изпълнението на PHP, например, в директория с изображения:
php_flag двигател 0 RemoveHandler .phtml .php .php3 .php4 .php5 AddType text/html .phtml .php .php3 .php4 .php5
- основна защита срещу хакове за зареждане на черупки.

Настройка на кодирането на сървъра

Посоченото кодиране се изпраща на браузъра в заглавката Content-Type и ще позволи на браузъра на клиента автоматично да превключи към необходимото кодиране.
AddDefaultCharset utf-8

Настройка на кодирането на изтеглените файлове

Когато качвате файлове на сървъра, можете да посочите в кое кодиране сървърът да очаква файла.
CharsetSourceEnc windows-1251

Деактивиране на директивата MultiViews

Опцията MultiViews, активирана на хостинга, може да причини неочаквани проблеми, например показване на несъществуващи страници на сайта или липса на достъп до съществуващи. Да приемем, че на сайта има страница с адрес http://www.sait.ru/down.php и ако посетителите отидат в несъществуващата директория http://www.sait.ru/down/, тогава активираната опция MultiViews ще замени файла down.php. Заместването обаче няма да бъде завършено напълно - пътища към изображения, листове със стилове и т.н. ще бъдат въведени неправилно. Тоест страницата ще се показва с изкривявания. За да потиснете това поведение на Apache, опцията MultiViews трябва да бъде деактивирана.
Опции -MultiViews

Отказване на достъп до файлове

За да предотвратите достъпа на посетителите сервизни файловеот прозореца на браузъра можете да откажете достъп до такива файлове. За да направите това, използвайте директивата за отказ и директивата за разрешение за достъп.
Забележка
Използването на директивите Deny и Allow контролира само достъпа до файлове от браузъра или от друга клиентска програма. Такива забрани не се отнасят за сървърните скриптове.
Отказ на достъп до файлове от браузъра Отказ от всички
Когато използвате такава директива, достъпът от браузъра до всички файлове и директории в текущата директория ще бъде отказан. Отказване на достъп до конкретен файл, например, тук се отказва достъп само до файлове с име config.php
Откажете от всички

Отказване на достъп до файлове с разширение inc
Откажете от всички

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

Достъпът до файлове с разширение inc, conf и cfg е забранен

Или използвайте конструкцията FilesMatch:
Разрешаване на поръчка, отказ Отказ от всички Удовлетворяване на всички
Достъпът до файлове, чието име започва с ".ht" (точка, след това ht, след това каквото и да е) е забранен.

Откажете или разрешите достъп от конкретен IP адрес или подмрежа

Поръчка откажи, разреши
Отказ от 100.111.222.70 133.252.0.0/24

Разрешете достъп само от определен IP адрес
Отказ на поръчка, разрешаване на отказ от всички
Разрешаване от 100.111.222.70
Директивата Order ви позволява да укажете реда, в който ще се изпълняват директивите. Първо се изпълнява директивата за отказ на достъп (Deny) и след това се разрешава достъп за IP адрес 100.111.222.70 (Allow). Ако в първия ред промените реда на директивите на Order allow, deny, тогава достъпът за IP адрес 100.111.222.70 няма да бъде отворен, т.к. Директивата Deny, изпълнена последна, ще замени директивата Allow.

Забележка:
Трябва да се отбележи, че разрешаването на достъп от конкретен IP адрес понякога може да не работи. Например, ако хостингът има инсталиран прокси сървър за обратно кеширане. Ако директивите за разрешение за достъп не работят, тогава трябва да се свържете с техническата поддръжка на вашия хостинг относно този проблем.

Пренасочване към друг адрес (пренасочване)

Често има проблеми, когато всички заявки към определен адрес трябва да бъдат пренасочени към друг адрес. Това може да стане с помощта на директивите Redirect и RedirectMatch. Те съобщават, че ресурсът на заявения URL адрес не е наличен и посочват адреса, на който трябва да отидете.

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

Глобално пренасочване към нов адрес
Пренасочване / http://www.site.ru/

Пренасочване при достъп до определен файл
Пренасочване /books/index.php http://www.site.ru/new/

Пренасочване при достъп до всяка страница от каталога
RedirectMatch /books/.* http://www.site.ru/new/

Пренасочване при достъп до всяка страница на сайта
RedirectMatch /.* http://www.site2.ru/

Можете също така да използвате условно пренасочване, например, когато влизате в сайт с www (www.site.ru) или поддомейн "sub.site.ru", трябва да пренасочите към основния домейн без www:
RewriteCond %(SERVER_NAME) ^www\.site\.ru RewriteCond %(SERVER_NAME) (www\.)?sub\.site\.ru RewriteRule ^(.*)$ http://site.ru/$1

Или отвърнете на лошите ботове:
RewriteCond %(HTTP_USER_AGENT) (краул|паяк|скрепер) RewriteCond %(HTTP_USER_AGENT) (Excite|360Spider|haosou|MJ12bot) #Никой не е у дома
RewriteRule ^(.*)$ - #или общо забранено
#RewriteRule ^(.*)$ -

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