Joomla htaccess — особенности настройки
Есть большая доля вероятности, что вы пользуетесь сервером Apache. Это один из самых популярных видов серверов, для какого есть особые файлы конфигурации. В частности, такой файл — это htaccess.
Данный файл предназначен для определения различных дополнительных параметров и конфигураций apache.
В предложенной статье будет рассмотрен htaccess для Joomla: его настройка, возможности и требования.
Что можно сделать при помощи файла htaccess
Основная опция, которой пользуются веб-мастера при помощи htaccess — это установка редиректа на определенные страницы и сайт в целом. Данная настройка позволяет перенаправлять пользователей и поисковые машины на заданный адрес, что поможет вам решить проблему дублирования URL, из-за какой ухудшается индексация ресурса.
С другой стороны, htaccess позволит вам изменить настройки доступа к различным частям сайта. Именно благодаря htaccess вы сможете заблокировать вход для указанного ip-адреса, введя таким образом бан на сайте для зловредных юзеров. И это только некоторые возможности файла htaccess, которые вы можете использовать.
https://www.youtube.com/watch?v=w95qwyZnYtE
Как найти, создать и настроить htaccess
Находиться файл htaccess должен в корневом каталоге на сайте, точно там же, где и robots.txt. Но вы имеете право поместить htaccess где угодно на хостинге. Разница в том, что если htaccess размещен в папке images, то и оказывать влияние он будет именно на каталог с картинками, а не на весь сайт. Так что вы можете разместить несколько файлов htaccess по сайту, чтобы создать максимально гибкие условия доступа.
Итак, пройдите через FTP-менеджер в файловую систему сайта в его корень. Если там нет файла htaccess, то вам придется его создать. Сделать это несложно и есть разные способы создания файла конфигурации для сервера:
- Первый вариант — это создание htaccess у вас на компьютере. Вам нужно будет открыть блокнот и прописать значения для файла. Затем вам нужно будет при помощи FTP-менеджера перенести файл на хостинг в корень сайта, а затем уже при помощи возможностей панели управления переименовать его с txt-формата в .htaccess с точкой в начале.
- Второй вариант еще проще — создайте эту конфигурации не выходя из админки хостинга при помощи кнопки «Создать файл». У вас наверняка имеется такая возможность.
Что можно будет указать в файле htaccess
Настройка конфигураций внутри htaccess полностью зависит от ваших потребностей. Если нужно запретить доступ к определенным директивам, то пропишите это, указав название папки через решетку #. Запрет для всех прописывается при помощи тега deny from all. Если вы хотите открыть доступ для всех, то напишите противоположный тег — allow from all. Также вы сможете ограничить права для всех пользователей для определенного файла при помощи тегов . Внутри первого тега после слова files укажите название файла и его формат.
Возможности htaccess в плане ограничения и открытия доступа к определенным данным сайта ограничены только вашей фантазией. К примеру, при помощи того же тега вы сможете запретить просмотр всех файлов определенного формата. А чтобы заблокировать конкретный ip-адрес, укажите строку Deny from и напишите ip-адрес. Если нужно указать несколько адресов, то пишите их через пробел в ряд.
Кроме того, файл htaccess в некотором роде может заменить robots.txt. Для этого вам нужно будет прописать юзер-агентов, для которых вход на ресурс воспрещен. Но поскольку сделать это не совсем удобно и просто, лучше воспользоваться классическим robots.txt и не заморачиваться.
https://www.youtube.com/watch?v=he6kz_3tLiY
Гораздо лучше использовать полезные функции htaccess. К таким можно отнести gzip-сжатие для ускорения работы сайта. После активации такой опции браузеры посетителей будут автоматически сжимать загружаемую информацию и реальный вес сайта уменьшится, как и время загрузки страницы. Но при этом повысится давление на сервер, так что у каждой «медали» две стороны. Что включать, а что нет — решать вам. Главное — это изменить стандартный файл, чтобы он способствовал улучшенной работе сайта на движке Joomla.
Как правильно настроить htaccess на Joomla
Во-первых, включите mod_rewrite. Эта функция используется очень часто, потому лучше сразу ее активировать. Она вам понадобится, когда вы включите в админке человекопонятные ссылки. Если mod_rewrite не активировать, они не заработают, еще и ошибка выскочит при загрузке страницы. Тег, который активирует этот модуль выглядит следующим образом: # RewriteEngine On.
Htaccess для Joomla, который работает
Знаете ли вы, Вы можете значительно уменьшить размер и увеличить скорость загрузки вашего сайта, используя только .htaccess? Автоматическое сжатие ресурсов, ETags и другие прекрасные вещи часто упускаются из виду, хотя данные элементы могут значительно улучшить производительность вашего сайта. В этой статье мы попытаемся понятным языком объяснить, что это, что они делают, как использовать их на ваших собственных сайтах. Чтобы проиллюстрировать преимущества использования данных элементов, я провел несколько тестов с помощью двух очень популярных в свое время клубных (платных) шаблонов Joomla и стандартного шаблона Joomla (Atomic), и измерил результаты с помощью очень крутого инструмента от GTMetrix. Каждая из трех установок была произведена с установкой демо-данных поставщика. Было проведено несколько тестов, чтобы оценить преимущества использования htaccess для увеличения производительности сайта. Клубные шаблоны содержат значительно больше данных и изображений, чем базовый шаблон Joomla, поэтому и сравнение шаблона “Atomic” с коммерческими шаблонами — не сравнение «яблок с яблоками», однако результаты по-прежнему интересны.
Показатель “BEFORE” — «До» теста, это контрольный показатель для оценки производительности «из коробки» и выполнены только две небольшие коррективы, для каждой демо-версии: переименование файла htaccess.txt Joomla в файл .htaccess и включена настройка перезаписи URL-адресов в глобальной конфигурации. Результаты в каждом результате довольно плохие.
Показатель “AFTER” — «После» — результаты, которые показывают значительное снижение размера страницы, время загрузки и увеличение скорости загрузки сайта. Этот тест был проведен после замены стандартного файла .htaccess Joomla файл потяжелее, в прямом и переносном смысле. Исходный файл .htaccess весил 4КБ, а наш — 24 КБ с комментариями. При этом не было включено никаких расширений, плагинов, GZIP, кэширование и любых других видов сжатие. Результаты показывают увеличение скорости загрузки для шаблона Atomic на 46%, улучшение показателей для шаблона RT Voxel и YOO Stream на 34% и 25% соответственно.
Тест «W/GZIP» был запущен после включения встроенного GZip-сжатия и кэширования в панели администратора, а также включения Кэша системы в менеджере плагинов. Однако никаких ощутимых изменений не произошло, чем я был весьма удивлен.
Итоговый тест «JCH» — это показатель результата установки расширения JCH Optimize, который незначительно улучшили показатели клубных шаблонов, но значительно улучшил оценку показателя YSlow (показатель “A” означает оценку “Отлично”) для стандартного шаблона Joomla Atomic. Впечатляет!
Все тесты проводились на одном и том же виртуальном сервере с разницей в одну минуту между тестами.
Как это делается? Оставшаяся часть этой статьи становится немного сложнее. Вы должны прочитать все комментарии и выбрать решения для ваших конкретных потребностей.
Существует множество статей, говорящих о безопасности сайта и htaccess, а также о других расширениях, таких как Admin Tools от Akeeba Backup. Поэтому я не буду углубляться в подробности, связанные с безопасностью, а буду говорить, в основном, о производительности. В следующем коде много комментариев, объясняющих, что каждый элемент может сделать для вашего сайта. Основные особенности данного файла, которые ускорят ваш сайт — это теги ETag (тег объекта), Expires headers и автоматическое сжатие ресурсов.
ETag говорит браузеру кэшировать изображения, которые он уже видел раньше, вместо того, чтобы загружать их заново, сообщая время и размер файла.
Expires headers схож с ETag, но может иметь различные сроки кэширования для каждого типа файла. Мы сообщаем браузеру, что данный файл должен обновляться каждые столько-то дней/недель/месяцев.
AddOutputFilterByType DEFLATE «уменьшает” исходный код вашего скомпилированного HTML файла, удалив ненужные переносы строк и пробелы. Шаблон YooTheme Steam сократился с 383 строк кода всего до 5!
КОД ФАЙЛА HTACCESS
########## Начало — ETag
## Это правло создаст ETag для файлов только на изменении
## времени и размера. Это работает особенно хорошо, если вы используете RSync
## серверы, где номер inode идентичных файлов отличается.
## Помните: Это может привести к проблемам с вашим сервером, и вам может потребовать удалить его.
FileETag MTime Size
########## Конец — ETag
########## Начало — Автоматическое сжатие ресурсов
# Сжатие текста, html, javascript, css, xml
# Может закрыть доступ к вашему сайту через старые версии Internet Explorer
# Сервер должен быть скомпилирован с mod_deflate в противном случае он будет посылать ошибку 500.
# mod_deflate недоступен на Apache 1.x. Он может использоваться только с серверами Apache 2.x.
# AddOutputFilterByType сейчас считается Apache устаревшим. В будущем придется использовать mod_filter.
AddOutputFilterByType DEFLATE text/plain text/html text/xml text/css application/xml application/xhtml+xml application/rss+xml application/javascript application/x-javascript
########## Начало — Оптимальное время истечения срока
## Замечание: это может вызвать проблемы и вам придется закомментировать его
## с размещением хэша перед линиями этой секции
# Enable expiration control ExpiresActive On # Default expiration: 1 hour after request ExpiresDefault «now plus 1 hour» # CSS and JS expiration: 1 week after request ExpiresByType text/css «now plus 1 week» ExpiresByType application/javascript «now plus 1 week» ExpiresByType application/x-javascript «now plus 1 week» # Image files expiration: 1 month after request ExpiresByType image/bmp «now plus 1 month» ExpiresByType image/gif «now plus 1 month» ExpiresByType image/jpeg «now plus 1 month» ExpiresByType image/jp2 «now plus 1 month» ExpiresByType image/pipeg «now plus 1 month» ExpiresByType image/png «now plus 1 month» ExpiresByType image/svg+xml «now plus 1 month» ExpiresByType image/tiff «now plus 1 month» ExpiresByType image/vnd.microsoft.icon «now plus 1 month» ExpiresByType image/x-icon «now plus 1 month» ExpiresByType image/ico «now plus 1 month» ExpiresByType image/icon «now plus 1 month» ExpiresByType text/ico «now plus 1 month» ExpiresByType application/ico «now plus 1 month» ExpiresByType image/vnd.wap.wbmp «now plus 1 month» ExpiresByType application/vnd.wap.wbxml «now plus 1 month» ExpiresByType application/smil «now plus 1 month» # Audio files expiration: 1 month after request ExpiresByType audio/basic «now plus 1 month» ExpiresByType audio/mid «now plus 1 month» ExpiresByType audio/midi «now plus 1 month» ExpiresByType audio/mpeg «now plus 1 month» ExpiresByType audio/x-aiff «now plus 1 month» ExpiresByType audio/x-mpegurl «now plus 1 month» ExpiresByType audio/x-pn-realaudio «now plus 1 month» ExpiresByType audio/x-wav «now plus 1 month» # Movie files expiration: 1 month after request ExpiresByType application/x-shockwave-flash «now plus 1 month» ExpiresByType x-world/x-vrml «now plus 1 month» ExpiresByType video/x-msvideo «now plus 1 month» ExpiresByType video/mpeg «now plus 1 month» ExpiresByType video/mp4 «now plus 1 month» ExpiresByType video/quicktime «now plus 1 month» ExpiresByType video/x-la-asf «now plus 1 month» ExpiresByType video/x-ms-asf «now plus 1 month»
########## Конец — Оптимальное время истечения срока
Советы и хитрости
Не все серверы одинаковы. Настройки сервера по умолчанию варьируются на каждом хостинге, а это означает, что некоторые параметры в файле .htaccess могут создать внутренную ошибку сервера 500. Лучший способ сузить поиск и выяснить реальную причину ошибки — это удалить кусок кода, загрузить, и снова проверить работоспособность сайта. Если ошибка сохраняется, замените первую часть и удалите другую, затем повторите шаги. Это очень удобно для того, чтобы записать номера строк, которые вы тестировали, чтобы найти причину ошибки.
Если вы поймете, чт CSS и javascript файлы работают неправильно — используйте специальные инструменты, такие как Firebug или инспектор элементов Chrome, чтобы увидеть логи ошибок. Ошибка 403 Forbidden, как правило означает, что вам заблокировали доступ к папке или типу файлов. Чтобы исправить ошибку, нужно искать путь к файлу ошибки и создать RewriteRule, чтобы разрешить доступ к этой папке, как в примерах ниже. На своем опыте я выяснил, что шаблонам RocketTheme нужен доступ к папке «fonts». Шаблонам YooTheme и/или Widgetkit/Zoo нужен доступ в соответствующие папки кэша.
RewriteRule ^templates\/your_template_folder/ — [L]
##Я выяснил, что это необходимо для @fontface fonts
RewriteRule ^templates\/your_template_folder\/fonts/ — [L]
##YooTheme Widgetkit и Zoo не будут правильно отображать изображения и css, если закрыть доступ к папке кэша
RewriteRule ^cache\/widgetkit/ — [L]
RewriteRule ^cache\/com_zoo/ — [L]
RewriteRule ^cache\/com_templates/ — [L]
RewriteRule ^cache\/template/ — [L]
RewriteRule ^cache\/plg_jch_optimize/ — [L]
Это не исчерпывающее руководство, и оно не предназначено для того, чтобы быть сброшенным на ваш сайт Joomla в качестве замены стандартных файлов без предварительной настройки кода под ваш сайт и сервер. Требуется хорошее понимание кода файла .htaccess, иначе вы можете (временно) получить ошибку на своем сайте. Рекомендуем вам сначала протестировать ваш файл .htaccess на демо-сайте или демо-сервере, и помните, что всегда, абсолютно всегда нужно делать резервное копирование.