Правильный файл htaccess для joomla
Итак, возьмем .htaccess от Joomla! (я взял от версии 3.4.1) и посмотрим, что в нем интересного и как это все работает.
В первой незакомментированной строке видим команду IndexIgnore
Если в конфигурации вашего сервера или в .htaccess файле включена опция
, то при обращении к папке, в которой нет файлов index.php или index.html, на экране браузера будет выведен листинг этой папки со всеми файлами и вложенными папками.
Команда IndexIgnore предназначена для исключения каких либо файлов из этого листинга, например команда
исключает из листинга файлы .htaccess, .ftpquota, .DS_Store и robots.txt .
Указанная в .htaccess от Joomla! команда
исключает из листинга все файлы. Т.е. листинг будет, но он будет пустой.
Далее следует строка.
Эта строка предназначена для корректной работы перенаправления в некоторых конфигурациях серверов. Но если она уже установлена в конфигурации сервера, то ее повторное использование может привести к проблемам. Возможно, вам потребуется закомментировать ее, если после переименования дистрибутивного htaccess.txt в .htaccess ваш сайт перестанет работать.
отключает вывод листинга при отсутствии в папке index-файла. Если вы все-таки предполагаете использовать вывод листинга какой либо папки, то вам придется более тонко настроить команду IndexIgnore, так как она имеет глобальное действие на все поддиректории. Например
Идем дальше. Начинается самое интересное — перенаправление.
Команда включает механизм перенаправления в модуле mod_rewrite.c .
Далее следует блок строк решающий некоторые вопросы безопасности.
Команды RewriteRule этого блока проверяют строку параметров запроса по следующему алгоритму:
- Строка параметров запроса закодирована в Base64
- Строка параметров запроса содержит тэг . Флаг [NC] в конце второй строки указывает, что проверка выполняется без учета регистра.
- Строка параметров запроса содержит операцию установки php- переменной GLOBALS через url
- Строка параметров запроса содержит операцию установки php-переменной $_REQUEST через url
В случае выполнения одного из этих условий, выполняется правило
Далее начинается блок SEF-оптимизации.
Далее идут строки:
Рассмотрим по порядку. Первая строка проверяет отсутствие index.php в строке запроса.
Следующая строка проверяет, что запрос не указывает на существующий файл.
Следующие строка проверяет, что запрос не указывает на существующую директорию.
Таким образом, благодаря этим строкам, правило не будет выполняться если в запросе указан существующий файл или директория.
В случае, если вышеперечисленные условия выполнены, отрабатывает правило в последней строке.
Флаг [L] означает, что это последнее правило.
Это правило переадресовывает запрос к скрипту index.php . Т.е. не зависимо от того что у нас передано в url, если это не файл и не папка, будет выполнен скрипт index.php . При этом строка исходного запроса будет доступна скрипту через суперглобальный массив $_SERVER.
В этой статье мы рассмотрим тему .htaccess: как создать этот конфигурационный файл, для чего он нужен и как с его помощью управлять редиректами, правами доступа и другими настройками.
Как сделать .htaccess в Windows
Если ваш сайт создан с помощью CMS (WordPress, Joomla, 1С Битрикс и других), файл .htaccess будет сгенерирован автоматически. Вы сможете его найти в корневой папке сайта в панели управления хостингом. Как правило, по умолчанию в файле не будет никакой информации, кроме нескольких строк с комментариями.
Обратите внимание! На хостинге с панелью управления cPanel .htaccess и все другие файлы, которые начинаются с точки, по умолчанию скрыты. Чтобы он начал отображаться в корневой папке, следуйте инструкции.
Если же сайт был написан с нуля, а не на CMS, или если файл по какой-то причине был удален, вы можете создать его на компьютере. Чтобы создать файл .htaccess на компьютере с ОС Windows:
Нажмите Файл → Сохранить как (или используйте комбинацию горячих клавиш Ctrl + Shift + S):
В графе «Тип файла» выберите Все файлы. Затем в поле «Имя файла» введите «.htaccess» и нажмите Сохранить:
Готово, файл создан.
Если файл сохранился под названием .htaccess.txt, нужно убрать расширение текстовых файлов (.txt). Для этого откройте проводник, перейдите во вкладку Вид и уберите галочку напротив пункта «Расширения имен файлов»:
Интерфейс проводника в Windows 10
Когда файл будет готов, залейте его в корневую папку сайта. Для этого войдите в панель управления и следуйте подходящей инструкции:
Как включить обработку ошибок
Чтобы установить пользовательские страницы ошибок, нужно воспользоваться директивой ErrorDocument. Добавьте в .htaccess директиву с номером ошибки и адрес созданной страницы:
Работа с файлом .htaccess
Создать файл и загрузить его в корневую папку сайта — только первый шаг. Следующий и самый важный — начать работать с настройками, о которые мы описывали выше.
Все конфигурации в .htaccess задаются с помощью директив (или команд). Они включают в себя символы латинского алфавита, %, фигурные и квадратные скобки и другие. Каждая директива состоит из ключа (неизменяемая часть) и значения. Например, директива для изменения главной страницы сайта:
Где DirectoryIndex — ключ, а index.php — значение (страница, которую вы хотите использовать в качестве главной страницы сайта).
Чтобы внести какую-либо директиву в конфигурационный файл вашего сайта:
Откройте файл .htaccess в корневой папке. Или создайте новый, если директива должна применяться не ко всему сайту, а к конкретному файлу или папке.
Обратите внимание! Не вносите в .htaccess видоизмененные команды, если не уверены в их работе. Повреждение файла может повлечь за собой сбой работы сайта.
Ниже вы найдете директивы для нескольких наиболее распространенных операций в файле .htaccess.
Вариант htaccess для магазина
Redirect 301 /viski /kategorii/whisky
Redirect 301 /wiskey /kategorii/whisky
Redirect 301 /tekila /kategorii/tequila
Redirect 301 /vermut /kategorii/wermut
Redirect 301 /dzhin /kategorii/gin
Redirect 301 /vodka /kategorii/vodka
Redirect 301 /shampanskoe /kategorii/champagne
Redirect 301 /konyak /kategorii/cognac
Redirect 301 /rom /kategorii/rum
Redirect 301 /igristoe-vino /kategorii/sparkling-wine
Redirect 301 /liker /kategorii/liqueur
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/css
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
ExpiresActive On
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType text/javascript "access plus 1 month"
ExpiresByType text/css "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
DirectoryIndex glavnaja.html index.html index.htm index.php
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/css
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
И не забываем, как с помощью файла htaccess, обеспечивается Защита панели управления по IP адресу.
ISPmanager
Нажмите Выберите файл, найдите на локальном диске созданный файл .htaccess и кликните Ok:
Готово, файл добавлен в «корень» сайта.
Как запретить доступ к файлам определенного типа
Если вам требуется запретить доступ к нескольким файлам одного формата, можно добавить директиву для каждого. При этом стоит учитывать, что серверу будет сложнее обрабатывать большое количество параметров в файле .htaccess. Чтобы экономить ресурсы сервера, можно закрыть доступ не к каждому файлу, а ко всем файлам схожего расширения.
Для этого добавьте следующие строки:
Где вместо txt, pdf, jpg — нужные вам расширения.
Идеальный htaccess для Joomla
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/css
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
php_flag engine off
Файл htaccess для Joomla
Ошибка «Strict Standards: Non-static method JLoader::import () should not be called statically in»
Для того чтобы не показывались ошибки
Для разных проектов идеальный файл htaccess может отличаться, но за основу я беру этот свой шаблон.
Plesk
В блоке нужного домена выберите Менеджер файлов:
Готово, файл будет загружен.
Что такое файл .htaccess
.htaccess — это дополнительный конфигурационный (служебный) файл, с помощью которого можно управлять настройками сервера. Он применяется в том случае, если хостинг-провайдер использует программное обеспечение Apache.
Файл .htaccess будет полезен, если ваш сайт размещен на виртуальном хостинге. На нём несколько пользователей делят ресурсы одного сервера. Общие настройки для управления этим сервером закрыты от клиентов, чтобы у них не было возможности влиять на другие сайты. При этом пользователи могут управлять настройками сервера только в рамках своего сайта через создание .htaccess.
Пример файла .htaccess
.htaccess - файл где можно задать дополнительные настройки (конфигурации), для веб-сервера Apache (и ему подобных серверов). Позволяет указать большое количество настроек и расширений, для правильной работы веб-сервера в отдельно взятых каталогаг (папок), а в нашем случае отдельных сайтов построенных наcms Joomla.
Основной функционал файла htaccess
С помощью данного файла мы можем настроить редирект (грамотную переадресацию поисковых ботов и посетителей), указать кэш (css, js, изображения и др.), блокировка MySql и файловых инъекций, запрет на доступ к отдельным папкам и каталогам, установка блокировки пользователей по ip, самостоятельная обработка ошибок web-сервера и другие возможности.
Перед самой настройкой файла .htaccess, нам необходимо проверить настройки SEO в админ-панели Joomla. Итак заходим в "админ-панель" - "сайт" - "общие настройки".
"Включить SEF (ЧПУ)" - ставим Да. Делает ссылки человеко-понятными, из плюсов можно отметить - улучшение для поисковой оптимизации, минусы - создает дубли страниц.
"Перенаправление URL" - ставим Да. Внимание - прежде чем включить данную опцию, всем пользователям сервера Apache (используется на большинстве виртуальных хостингах) - следует переименовать файл htaccess.txt в файл .htaccess (впереди обязательно точка, не имеет расширения).
"Добавлять суффикс к URL" - устанавливаем по желанию (я поставил нет). Если поставить Да - то к каждому url-адресу будет добавляться суффикс, в зависимости от типа документа. Например html, php и другие.
"Алиасы в Unicode" - ставим Нет.
"Включить название сайта в заголовок страницы" - по желанию (После, До, Нет).
Теперь давайте проверим включен ли системный плагин SEF. Заходим в "Расширения" - "Менеджер плагинов" и ищем плагин "Система-SEF". Если он выключен, то его необходимо активировать.
Настройка файла .htaccess для Joomla
Сразу хочу отметить, что предлагаемый мной .htaccess не является панацеей, для всех web-ресурсов на cms Joomla, но на начальном этапе вполне работоспособный и достаточно качественный.
Итак первой секцией нам необходимо задать основные опции:
Options +FollowSymLinks -Indexes
Директива Options - определяет какие свойства сервера доступны. Опции со знаком "+" будут добавлены к опциям включенным на данный момент, со знаком "-" - будут удалены.
+FollowSymLinks - данная опция позволяет нам использовать символические ссылки на каталоги или файлы, которые не находятся в пределах корня вашего сайта.
-Indexes - запрет на листинг каталогов, если в них нет индексного файла (например index.html - заглушка).
Кодировка по умолчанию.
- данное условие предупреждает 500 ошибку сервера, которая может возникнуть, если у вашего хостера не будет установлен модуль mod_rewrite, который в свою очередь входит в сборку сервера Apache по умолчанию.
RewriteEngine On - Данная секция отвечает за включения mod_rewrite, который в свою очередь используется, для SEF, а также для перенаправления пользователей по нужным адресам.
RewriteBase / - Корневая директория, куда устанавливается Joomla.
Если у вас в папке находится файлы index.php и index.html, то тогда данная секция укажет серверу - какой файл является более главным (в нашем случае index.php).
Настройка php на хостинге:
php_value register_globals 0
php_value safe_mode 0
php_value allow_url_fopen 0
php_value display_errors 0
php_value file_uploads 1
php_value magic_quotes_gpc 1
php_value magic_quotes_runtime 0
php_value upload_max_filesize 20M
php_value post_max_size 10M
php_value max_execution_time 100
php_flag register_globals Off
php_flag display_errors Off
php_flag file_uploads On
php_flag allow_url_fopen off
php_flag magic_quotes_gpc On
php_flag magic_quotes_runtime Off
- условие которое предупреждает от 500 ошибки, если на сервере не будет установлен модуль mod_php.
php_value register_globals 0 - используется для повышения безопасности. Отключает режим register_globals в PHP.
php_value safe_mode 0 - отключение потенциально опасной директивы.
php_value allow_url_fopen 0 - отключение потенциально опасной директивы.
php_value display_errors 0 - отключение вывода ошибок в браузер.
php_value file_uploads 1 - загрузка по 1 файлу за раз (методом post).
php_value magic_quotes_gpc 1 - функция которая автоматически экранирует данные GET, POST, COOKIE.
php_value magic_quotes_runtime 0 - избавление от ошибок, "магические кавычки"
php_value upload_max_filesize 20M - устанавливаем максимальное значение загружаемых файлов (по умолчанию в основном 8М)
php_value post_max_size 10M - максимальное значение постинга (по умолчанию в основном 2М)
php_value max_execution_time 100 - максимальный лимит времени (в секундах), для выполнения скриптов (по умолчанию в основном 30 секунд).
Все ненужные или вызывающие ошибку строки, вы можете закомментировать или удалить.
Правила обработки запросов для блокировки распространенных эксплоитов:
RewriteCond % proc/self/environ [OR] - блокировка атак на ваш сайт.
RewriteCond % mosConfig_[a-zA-Z_](=|\%3D) [OR] - блокировать запрос, который пытается установить значение mosConfig непосредственно через URL.
RewriteCond % base64_(en|de)code\(.*\) [OR] - заблокировать запрос, который пробует испортить base64_encode через URL
RewriteCond % (<|%3C).*script.*(>|%3E) [NC,OR] - заблокировать запрос, который содержащий тег в URL.
RewriteCond % GLOBALS(=|\[|\%[0-9A-Z]) [OR] - заблокировать запрос, который пробует установить значение глобальных переменных PHP через URL.
RewriteCond % _REQUEST(=|\[|\%[0-9A-Z]) - заблокировать запрос, который пробует изменить переменную _REQUEST через URL.
RewriteRule ^(.*)$ index.php [F] - перенаправлять заблокированные запросы на страницу 403 с запрещенными ошибками.
Блокировка прямого доступа к ядру:
RewriteCond % -f
RewriteCond % \.php|\.ini|\.xml [NC]
RewriteCond % \/components\/ [OR]
RewriteCond % ^\/includes\/|^\/administrator\/includes\/ [OR]
RewriteCond % \/language\/ [OR]
RewriteCond % \/libraries\/ [OR]
RewriteCond % \/modules\/ [OR]
RewriteCond % \/plugins\/ [OR]
RewriteCond % \/templates\/ [OR]
RewriteCond % \/cli\/
RewriteRule ^(.*)$ index.php [R=404,L]
"RewriteCond % -f" - условие, которое указывает, что все существующие файлы не будут обрабатываться регулярными выражениями.
Все остальные строки отвечают за блокировку и перенаправление через index.php, при попытке получить прямой доступ к файлам с расширением .php, .ini, xml и указанным выше папкам.
NC - регистро-независимая проверка.
OR - условие которое сопоставляется с другими по правилу ИЛИ.
Строки ниже, отвечают за блокирование MySQL инъекций:
RewriteCond % concat.*\( [NC,OR] RewriteCond % union.*select.*\( [NC,OR] RewriteCond % union.*all.*select [NC] RewriteRule ^(.*)$ index.php [F,L]
Код отвечающий за блокировку файловых инъекций:
Запрет доступа к файлам htaccess.txt, configuration.php и php.ini:
RewriteRule ^(htaccess\.txt|configuration\.php-dist|php\.ini)$ - [F]
Раздел SEF ядра Joomla:
Увеличение скорости сайта с помощью правил в файле .htaccess
Для того, что бы ускорить скорость вашего сайта, мы будем использовать два метода - сжатие и кэширование.
Сервер Apache может использовать два модуля для сжатия - mod_deflate и mod_gzip. Почти у всех провайдеров они есть по умолчанию, хотя может и не быть. mod_deflate - наиболее распространенный модуль, его мы и рассмотрим первым.
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css
text/javascript application/javascript application/x-javascript
С помощью данного модуля мы смогли сжать весь контент, а именно html, css, js. Как видно, для того что бы указать какие файлы необходимо сжимать, мы указали mime type данных файлов. Также можно было добавить изображения или видео, но данная процедура практически бесполезна, так как эти файлы уже довольно хорошо сжаты.
Следующий модуль для Gzip сжатия - mod_gzip. Для корректной работы модуля, добавьте следующие строки в файл .htaccess.
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include mime ^text\.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
Хотя данный модуль используется реже, но качество сжатие практически одинаково у обеих модулей.
Примечание: Используя данные модули сжатия, вы сможете существенно ускорить загрузку страниц вашего сайта, так как все, что можно будет сжать - будет сжиматься у вас на сервере и передаваться в браузеры пользователей, но этим самым действием вы увеличите нагрузку на свой сервер. Если у вас в запасе присутствуют дополнительные мощности на сервере - то включаем обязательно, а если нагрузка практически на пике - то стоит быть осторожным, что бы хостер не заблокировал ваш ресурс. Нагрузка может подскочить на 20-60%.
Кэширование страниц можно включить используя два замечательных модуля - mod_headersи mod_expires. В основном у провайдера стоит хоть один из этих модулей, но во избежание ошибки 500, мы будем использовать проверку наличия модулей.
По комментарием в коде модуля легко можно понять, что за что отвечает и вы легко сможет настроить временной интервал кэширования под свои нужды.
Рассмотрим следующий модуль отвечающий за кэширование страниц - mod_expires:
Все закомментированные строки можно удалить.
Ниже я выложил готовый файл .htaccess. Если есть вопросы - пишите в комментариях.
Обязательно посмотрите какие блоки кода вам действительно необходимы, отнеситесь с вниманием к файлу .htaccess.
Search Engine Optimisation - приведение структуры и содержимого интернет-сайта в соответствие со стандартами качества информации, предъявляемыми к интернет-страницам поисковыми алгоритмами ведущих поисковых систем Интернет.
Прежде чем начать вносить какие-либо изменения в файл htaccess необходимо разобраться, что это за файл и для чего он нужен. Если вкратце, то данный файл отвечает за конфигурирование настроек веб-сервера. Другими словами, в нем содержится информация о том, как веб-сервер должен обрабатывать те или иные страницы сайта.
cPanel
В блоке «Файлы» нажмите Менеджер файлов:
Найдите в списке слева домен вашего сайта, кликните по нему и в строке сверху нажмите Загрузить:
Готово, файл будет загружен.
Какие директивы содержит файл htaccess?
Директив может быть множество, в базовом варианте файл htaccess, который уже присутствует в Joomla 3, содержится (если убрать все комментарии) примерно следующий код:
На этом рассмотрение базового файла htaccess законченно. Теперь вы знаете что для того чтобы файл начал раздавать указания веб-серверу его для начала необходимо переименовать. Базовый файл htaccess вполне работоспособен и для начала вполне подойдет для работы.
В следующей статье я расскажу о других полезных директивах файла htaccess, которые позволят защитить сайт, включить сжатие и кэширование его страниц, и некоторые другие полезные функции.
Файл htaccess очень важен для правильного функционирования сайта. В нем мы настраиваем редиректы, склеиваем дубли и делаем еще многие вещи, облегчая себе жизнь в дальнейшем.
Нужно знать, что для разных сайтов и в зависимости от стоящих задач, файлs htaccess, могут отличаться. Самое главное, что вы должны понимать основные правила их составления и использовать некоторые хитрости, написанные в кодах на серьезных сайтах.
Иногда нужно, чтобы все старые адреса какой-либо категории переадресовывались на другую категорию:
У меня была ситуация, когда я перенес на другой сайт книгу, которая занимала целую категорию с несколькими сотнями страниц. Куда переадресовывать теперь эти страницы?
- на новый сайт
- на какие-то страницы этого же сайта
Чтобы не прописывать сотню адресов, я сделал такой вот rод.
RewriteRule ^staryy/(.*)$ /novyj[R=permanent,L]
Теперь все ссылки начинающиеся с staryy, будут переадресованы на одну страницу novyj.
Как запретить просмотр директорий в .htaccess
Обладая определенными знаниями, любой человек может посмотреть структуру вашего сайта (в первую очередь листинг — список всех каталогов сайта). Чтобы запретить просмотр листинга, можно ввести одну строку в .htaccess:
Чтобы открыть отображение листинга, введите:
Как настроить 301 редиректа для сайта
Мы посвятили настройке редиректов в .htaccess отдельную статью, в которой рассмотрели 10 различных вариаций редиректов.
Рассмотрим самый часто используемый тип: редирект с одного домена на другой. Он используется, если сайт переехал на новый домен из-за ребрендинга, изменения официального названия компании или причин технического характера.
Чтобы сделать редирект, добавьте в .htaccess строки:
Как запретить доступ к файлу, папке или всему сайту
Когда на сайте идут «ремонтные работы», он функционирует нестабильно. Чтобы в это время на него не заходил никто, кроме разработчиков, можно ограничить доступ к сайту или отдельным файлам.
- Чтобы закрыть доступ ко всему сайту, добавьте в файл строки:
Чтобы закрыть доступ к конкретной папке, создайте новый файл .htaccess в этой папке и добавьте в него код выше.
Чтобы закрыть доступ от всех посетителей, кроме конкретного IP (через запятую можно указать несколько IP-адресов) введите:
Где 123.123.123.123 — IP-адрес, для которого доступ разрешен.
- Чтобы закрыть доступ к конкретному файлу, создайте новый файл .htaccess в той папке, где находятся нужный файл, и добавьте следующие строки:
Где example.exe — название файла, к которому нужно закрыть доступ.
Зачем нужен .htaccess
В файле .htaccess можно задать некоторые серверные настройки Apache для конкретного сайта или отдельной папки. Например:
Настроить редирект. Редирект — это переадресация с одного адреса на другой. Подробнее о назначении редиректов, их типах и настройках мы рассказали в статье. Файл .htaccess позволяет задавать гибкие перенаправления: например, для отдельного IP, со страниц без префикса www на страницы с ним, редиректы для всех страниц, кроме главной и другие.
Назначить страницы ошибок. На сайтах встречаются различные ошибки (404 — страница не найдена, 403 — в доступе отказано и т. д.). Тогда пользователь видит страницу с описанием возникшей ошибки. По умолчанию такие страницы практически не оформлены и могут сильно отличаться от дизайна остального сайта. Выход — создать свою красочную страницу ошибки и задать ее появление в .htaccess.
Изменить главную страницу. В архитектуре сайта по умолчанию выбрана главная страница (индексный файл), которая отображается первой при открытии сайта. Если вы хотите сделать первой какую-то другую страницу, используйте .htaccess.
Включить кэширование файлов. Кэширование позволяет поместить часть статичной информации сайта в кэш. Благодаря этому страницы сайта будут быстрее загружаться в браузерах пользователей. Если настроить кэширование в .htaccess, ускорится работа сайта.
Создать ЧПУ. ЧПУ расшифровывается как «человекопонятный URL». Иногда URL-адреса могут быть слишком длинными или содержать численное обозначение страниц. Это негативно влияет на пользовательский фактор, а значит и на SEO-показатели. В .htaccess с помощью одной команды можно назначить для URL латинские символы (или задать другой подходящий способ).
Защитить папку паролем. Если сайт содержит папку с конфиденциальной информацией, ей требуется дополнительная защита. Через .htaccess можно настроить базовую аутентификацию по логину и паролю. Это позволит снизить риск взлома и кражи данных.
Настроить параметры php. PHP — язык программирования, который используется в разработке большинства сайтов с динамическим контентом. Настраивать PHP можно в файле php.ini, а можно работать с ним как с модулем .htaccess и управлять настройками в одном конфигурационном файле.
Ограничить доступ к сайту. В .htaccess можно ограничить доступ к сайту для нежелательных IP, что позволит контролировать доступ, а также отражать хакерские атаки. Например, DDoS-атаку, в момент которой процессор пытаются нагрузить таким количеством запросов, которые он не способен обработать. Как правило, запросы поступают с одного/нескольких IP-адресов. Подробнее: Что такое DDoS-атака.
Закрыть доступ к сайту от поисковых ботов. Чтобы сайт отображался в поисковой выдаче, его должны обойти поисковые роботы, которые собирают информацию, необходимую для индексации. Однако некоторые поисковые боты могут быть нежелательны (SolomonoBot и др.). В .htaccess можно ограничить доступ к сайту для нежелательных ботов по User-Agent.
Таким образом, .htaccess позволяет гибко настраивать отдельные сайты без изменения общих параметров сервера. Также этот конфигурационный файл можно передавать внештатным SEO-специалистам: они получат доступ к настройками именно SEO-оптимизации без возможности менять настройки на сайте или хостинге.
Ниже рассмотрим, как создать файл .htaccess на своем компьютере и загрузить его на хостинг.
Для чего используется htaccess?
В большинстве случаев файл htaccess используется для создания переадресации или другими словами 301 редиректа с одной страницы сайта на другую. Но это далеко не все возможности данного файла, так же с его помощью можно указать веб-серверу (Apache и подобных серверов) о необходимости сжимать страницы, включать кэширование, управлять доступом к каталогам и многое другое.
Так как для пользователей, которые разместили свои сайты на виртуальном хостинге, нет возможности напрямую конфигурировать веб-сервер (так как это затронет все размещенные на нем сайты), то для конфигурации сервера для каждого сайта в отдельности и был придуман файл htaccess.
Где должен располагаться файл htaccess?
После установки Joomla 3 на локальном компьютере, либо на хостинге в корневой директории сайта уже содержится файл htaccess.txt, но для того чтобы он начал работать его необходимо переименовать. Имя рабочего файла должно начинаться с точки, далее имя «htaccess» и все, расширения «.txt» быть не должно. В результате файл должен иметь имя «.htaccess».
По поводу места его расположения, тут все просто – если файл лежит в корневом каталоге сайта, то его действия распространяются на весь сайт. Но никто не запрещает поместить файл htaccess во вложенные каталоги, тем самым действие файла будет применяться только к ним и вложенным папкам. Так же возможно использование нескольких файлов htaccess в разных папках, к примеру, в корне сайта и во вложенной папке. В этом случае действие основного файла будет распространяться на весь сайт, за исключением того каталога в котором лежит собственный файл конфигурации.
Читайте также: