петък 21 юли 2017
  • :
  • :

За какво се използва .htaccess файла?

Съкращението на този файл означава Hypertext accesss. Той е конфигурационен и работи на ниво директория, т.е. може да промени част от глобалната конфигурация на сървъра, за директорията, в която е поставен и нейните папки. Главната му цел е да определи кой има достъп до съдържанието на определена папка през Интернет.  Най-честата му употреба е за:

  • Ауторизация и идентификация
  • Пренасочване на URLs
  • Блокиране/позволяване на достъп на потребители по IP
  • Защита на папки с парола
  • Забрана за листване на определени директории
  • Hotlink защита за файлове
  • Настройка на страницата, която да се отваря по подразбиране
  • Настройка на часовата зона на сървъра
  • Създаване и задаване на собствени страници за грешки
  • MIME types, Cache control и други.

 

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

RewriteEngine On
RewriteCond %{REQUEST_URI} ^(/address) [NC]
RewriteRule ^(.*) /to-address [L]

address – Това е уеб адреса, който ще се достъпва и ще активира пренасочването.

to-address – Адресът към който ще се извърши пренасочването.

 

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

RewriteCond %{REQUEST_URI} ^(/directory) [NC]

или

RewriteCond %{REQUEST_URI} ^(/file.php) [NC]

 

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

RewriteEngine On
# ако не е IP адрес 1
RewriteCond %{REMOTE_ADDR} !^xxx\.xxx\.xxx\.xxx$
# ако не е IP адрес 2
RewriteCond %{REMOTE_ADDR} !^xxx\.xxx\.xxx\.xxx$
# пренасочване на заявките към директория subdir
# с изключение на заявки към посочената директория
RewriteRule !^subdir https://mysite.com/subdir/ [R=301,L]

От тези правила, в случай че не са ви необходими, можете да премахнете двата реда с IP адресите.

Пренасочване на файл към директория:

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/file\.php$ [NC]
RewriteRule .* https://www.mysite.com/directory/ [R,L]

Със същите правила можете да пренасочите директория към определен файл, файл към файл или директория към директория, например:

RewriteCond %{REQUEST_URI} ^/directory$ [NC]
RewriteRule .* https://www.mysite.com/file.php [R,L]

 

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