Что такое файл htaccess и зачем он нужен?

Давайте сейчас в этом разберемся. 

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

Что же это за файл?

По сути, это простой текстовый файл, который вы можете создать самостоятельно в любой папке на вашем веб-сервере.

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

Создается этот файл как обычный текстовый файл. Вы можете попробовать создать его на своем веб-сервере. Если этот файл будет пустой, то на работу вашего веб-сервера это никак не повлияет.

Таким же образом его можно удалить, как простой текстовый файл.

Казалось, бы, что это простой текстовый файл, но какую смысловую нагрузку он несет?

Но, важно!

1. Файл htaccess будет работать только на веб-сервере Apache. 

Веб-сервер - это специальная программа, к которой браузер обращается, программа обрабатывает данные и выдает ему какой-то результат (ответ в виде HTML-страницы).

Веб-сервер - это посредник между посетителем сайта и теми файлами, которые располагаются на этом сайте. Веб-сервер эти файлы обрабатывает, подготавливает и выдает клиенту.

2. Даже если у вас установлен веб-сервер Apache, на этом веб-сервере должна быть специальная разрешающая настройка, что в папках этого веб-сервера разрешается использовать этот файл. 

Теперь переходим к тому, что же это такое. 

htaccess - это просто настройки работы веб-сервера Apache. 

Это простой текстовый файл, который содержит определенные текстовые команды, обрабатывая которые, веб-сервер Apache ведет себя каким-то определенным образом. 

Для веб-сервера Apache есть 2 основных варианта как мы можем настроить его работу.

Во первых, мы можем сделать это в корневой папке самого веб-сервера, в той папке, в которой установлен сам веб-сервер Apache. Там есть специальный файл, который называется httpd.conf.

Это главный настроечный файл, который задает настройки самого веб-сервера. Что, как он будет работать, в каких случаях, какие результаты выдавать и.т.д.

Но, этот файл для начинающих пользователей может показаться слишком сложным. Поэтому доступ к этому файлу открыт не для всех. 

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

Этот файл позволяет вам также в нем записать какие-то настроечные команды для веб-сервера Apache, которые будут вносить изменения и перетирать те настройки, которые есть в этом файле. 

С помощью файла htaccess мы можем настраивать веб-сервер и говорить ему то, как он должен вести себя в тех или иных ситуациях. Самая главная особенность в том, что мы можем это сделать даже без перезагрузки веб-сервера.

 Что мы можем делать с помощью файла htaccess?

1) Можно настраивать перенаправления для вашего сайта. Например, пользователь перешел на ваш сайт с приставкой www и мы перенаправляем его соответственно на ту же самую страницу на которую он перешел, только уже без приставки www. 

Также можно сделать редирект или перенаправление если пользователь обратился к вашему сайту по протоколу http, мы можем перенаправить его на версию сайта по протоколу https.

Если он обратился на какую-то несуществующую страницу, мы можем перенаправлять его соответствующей командой на какую-то существующую страницу.

2) Запрещать доступ к какому-то файлу папке, адресу и.т.д. 

3) Подсказать браузеру как нужно себя вести при возникновении каких-то ошибок. 

Например, пользователь обратился к какой-то несуществующей странице, появилась ошибка 404, что ему нужно делать? Как веб-серверу поступать в этом случае? Это все можно настраивать файлом htaccess.

Такой вот смысл использования этого файла, ничего сложного в этом нет. Главное освоить синтаксис команд, которые в нем могут использоваться.

Главный смысл файла htaccess в том, что это просто настроечный файл для веб-сервера Apache. Вот, собственно говоря, и все.