Прежде чем начать вносить какие-либо изменения в файл htaccess необходимо разобраться, что это за файл и для чего он нужен. Если вкратце, то данный файл отвечает за конфигурирование настроек веб-сервера. Другими словами, в нем содержится информация о том, как веб-сервер должен обрабатывать те или иные страницы сайта.
Для чего используется htaccess?
В большинстве случаев файл htaccess используется для создания переадресации или другими словами 301 редиректа с одной страницы сайта на другую. Но это далеко не все возможности данного файла, так же с его помощью можно указать веб-серверу (Apache и подобных серверов) о необходимости сжимать страницы, включать кэширование, управлять доступом к каталогам и многое другое.
Так как для пользователей, которые разместили свои сайты на виртуальном хостинге, нет возможности напрямую конфигурировать веб-сервер (так как это затронет все размещенные на нем сайты), то для конфигурации сервера для каждого сайта в отдельности и был придуман файл htaccess.
Где должен располагаться файл htaccess?
После установки Joomla 3 на локальном компьютере, либо на хостинге в корневой директории сайта уже содержится файл htaccess.txt, но для того чтобы он начал работать его необходимо переименовать. Имя рабочего файла должно начинаться с точки, далее имя «htaccess» и все, расширения «.txt» быть не должно. В результате файл должен иметь имя «.htaccess».
По поводу места его расположения, тут все просто – если файл лежит в корневом каталоге сайта, то его действия распространяются на весь сайт. Но никто не запрещает поместить файл htaccess во вложенные каталоги, тем самым действие файла будет применяться только к ним и вложенным папкам. Так же возможно использование нескольких файлов htaccess в разных папках, к примеру, в корне сайта и во вложенной папке. В этом случае действие основного файла будет распространяться на весь сайт, за исключением того каталога в котором лежит собственный файл конфигурации.
Какие директивы содержит файл htaccess?
Директив может быть множество, в базовом варианте файл htaccess, который уже присутствует в Joomla 3, содержится (если убрать все комментарии) примерно следующий код:
IndexIgnore * #Исключаем файлы из листинга
Options +FollowSymlinks #Данная строка предназначена для корректного перенаправления.
Options –Indexes #Запрет просмотра директорий в которых нет индексных файлов
RewriteEngine On #Включаем механизм перенаправления в модуле mod_rewrite.c
## Настройки безопасности
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Если было выполнено одно из описанных выше условий, то сервер вернет 403 ошибку и перенаправит на главную страницу сайта.
RewriteRule .* index.php [F] #За это отвечает данная строчка
## Блок посвященный SEF-оптимизации.
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]
На этом рассмотрение базового файла htaccess законченно. Теперь вы знаете что для того чтобы файл начал раздавать указания веб-серверу его для начала необходимо переименовать. Базовый файл htaccess вполне работоспособен и для начала вполне подойдет для работы.
В следующей статье я расскажу о других полезных директивах файла htaccess, которые позволят защитить сайт, включить сжатие и кэширование его страниц, и некоторые другие полезные функции.