Правильный файл htaccess для joomla

Обновлено: 03.07.2024

При покупке хостинга, нужно сразу обратить внимание на то, поддерживает ли он файл htaccess при работе с Joomla. Кроме этого, нужно узнать на какой системе работает сервер. Если сервер работает на Linux или Unix, то htaccess, скорее всего, будет поддерживаться. Вы можете сами вручную создать этот файл в блокноте или скопировать готовый (с рекомендуемыми командами для Joomla) со стандартного пакета Joomla последней версии. Если Вы не обладает достаточными знаниями в этой сфере, то не рекомендуется существенно изменять работу данного файла, так как есть риск того, что сайт перестанет работать. В любом случае - сначала всегда нужно сделать резервную копию файла или всего сайта.

Как выглядит файл .htaccess?

Стандартно в нём уже вшита защита от многих эксплойтов, через которые злоумышленник сможет взломать сайт, но всё же лучше немного изменить структуру данного файла для повышения защиты. Кроме того, Вы вольны создать файл с разрешением .htaccess в любой папке сайта, чтобы запретить или запаролировать доступ к данной папке. В этом плане работа с данным файлом практически не ограничена. Только обратите внимание, что эти настройки данного файла подойдут только для Joomla. Кроме того, в разных версиях этого движка, структура документа .htaccess может изменяться. Так что не используйте эти настройки во всех сайтах, так как Выше указан просто пример!

Защита сайта с помощью веб-сервера Apache (работа с файлами .htaccess и .htpasswd)

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

Что из себя представляет этот способ? Этот способ представляет из себя процесс аутентификации пользователя посредством сервера Apache. Он довольно простой, но при этом очень надежно защитит доступ к Вашей административной панели сайта. Для выполнения описанных ниже действий, Вам не потребуется специальных знаний в этом вопросе, Вам нужно лишь внимательно проделать то, что я напишу и покажу на примерах.

Принцип работы аутентификации (ввода логина и пароля)

Когда посетитель пытается зайти в определённую директорию, сервер Apache посылает заголовок 401. Браузер, которым пользуется посетитель, принимает данный заголовок, и ему открывается окно для ввода логина и пароля (эти данные могут отличаться от логина и пароля для входа в админку). После ввода данных в окне сервера Apache, он проверяет их (логин и пароль) на нахождение в специальном документе (файл .htpasswd). Если данные там есть и они введены правильно, то пользователь получает доступ к закодированной папке. А уже после этого нужно будет вводить данные для входа в админку. Кроме того, браузер ещё и запоминает область действия этих данных, чтобы при повторном заходе в папку, Вам не пришлось заново вводить данные для доступа. Если данные введены неверно или Вам просто нужно ещё раз их ввести по другой причине, то для вывода окна с вводом логина и пароля, Вам нужно будет почистить кэш Вашего браузера.

Что нужно для защиты через Apache

Вот что нам понадобиться для настройки защиты посредством Apache:

  1. Доступ к FTP Вашего сайта;
  2. Файл .htaccess. Вы можете просто создать пустой документ с названием .htaccess и в нём вбить потом нужные данные (чуть ниже напишу, какие именно);
  3. Файл .htpasswd. Так же нужно будет создать пустой текстовый файл с названием .htpasswd и данными, о которых так же будет написано ниже;
  4. Программа для генерации паролей по алгоритму MD5 htpasswd.exe (можно сделать это в режиме онлайн через специальный сервис - мы будем использовать этот способ, так как для этого не нужно скачивать и устанавливать сторонние программы на свой компьютер).

Имея под рукой все необходимые данные, можно приступать к работе. Опишу вкратце процесс: сначала нам нужно создать файл паролей .htpasswd, потом сгенерировать пароли через специальный онлайн сервис (можно через программу htpasswd.exe, если умеете ей пользоваться. Но я опишу способ генерации файлов в режиме онлайн, так как так намного быстрее и проще), затем мы создаём файл .htaccess с нужными данными и кидаем оба этих файла в папку "administrator" (ведь нам нужно защитить именно её от доступа "нехороших" людей). Вот и всё! Чуть ниже я опишу весь процесс более подробно.

Создание файла .htpasswd и генерация логина и пароля в шифре MD5 для него

Нажимаете "Сгенерить" и попадаете на следующее окно данного сервиса, в котором два окошка с командами, одну из которых (верхнюю, если быть точным) нужно вставить в файл .htaccess, а нижнюю ( это логин с паролем) нужно вставить в файл .htpasswd:

Во второй строчке (окошко с названием "Файл .htpasswd") написаны логин и пароль (в зашифрованном виде пароль 123456 выглядит вот так: aaAN1ZUwjW7to, поэтому Вы его сначала и не узнали). Именно эти данные в таком же виде, как они написаны в окне (то есть, "admin:aaAN1ZUwjW7to"), Вам и нужно вставить в текстовый файл с названием .htpasswd. После этого Вам осталось лишь скопировать данный файл в папку administrator Вашего сайта. Теперь осталось лишь создать файл .htaccess и скопировать его туда же.

Создание файла .htaccess

В текстовом редакторе создайте файл с названием .htaccess и скопируйте в него данные, которые были указаны в первой части онлайн-генератора файлов .htaccess и .htpasswd. А именно вот эти:

AuthUserFile administrator/.htpasswd
AuthGroupFile /dev/null
AuthName "Запароленная зона"
AuthType Basic
<limit GET POST>
require valid-user
</limit>

На всякий случай, я распишу подробно, что означают эти данные:

Файл .htaccess так же нужно перекинуть в папку "administrator" на Вашем сайте. Теперь всё готово. Осталось только проверить на работоспособность и убедиться в том, что мы всё сделали правильно. Для проверки нужно попробовать зайти в административную панель Вашего сайта. Если у Вас высветится такое окно, то значит Вы всё сделали правильно:

Но лучше попробовать ввести логин и пароль, чтобы уже точно убедиться в правильности выполненных действий. Логин нужно вводить тот, который написан в файле .htpasswd. А пароль, наоборот, не тот, который написан в этом файле (это зашифрованный вид. Шифр формата MD5), а тот, который Вы вводили на сайте онлайн генераторе (я вводил для примера 123456). После ввода данных, вход должен осуществиться. Только для входа в админку, нужно будет всё равно вводить данные для доступа (логин и пароль для доступа в админку останутся прежними, просто теперь перед их вводом, нужно будет ввести логин и пароль для Apache).

Защита доступа в админку через Панель управления Вашего хостинга

Сейчас, как правило, многие хостинговые компании поддерживают настройку данного способа защиты сайта (посредством Apache) прямо через панель управления сайтом. Для этого нужно лишь иметь доступ в эту самую панель. Это очень удобно, так как Вам не придётся возиться со всеми этими файлами, паролями и прочими данными, а просто нужно будет ввести путь к папке, которую нужно закрыть, и прописать к ней пароль. При выборе и покупке хостинга, Вы можете выбрать, какую панель управления использовать для Вашего сайта (основные панели для управления - это Cpanel и ISPmanager). Мне довелось поработать и с той и с другой панелью. Особой разницы я не заметил. О защите доступа к админке Joomla через панель управления, я расскажу на примере ISPmanager, так как сейчас я пользуюсь именно этой панелью для работы. Хотя опять же повторюсь, что они схожи, так что у Вас не должно возникнуть проблем при настройке ограничения доступа к папкам и на этой панели.

Первым делом Вам нужно найти строку, которая отвечает за ограничение доступа к определённым папкам и файлам сайта. У меня она находится в категории "World Wide Web" и называется "Ограничение доступа":

При нажатии на кнопку "Ограничение доступа", Вы попадёте в пустое окно. Вам нужно будет нажать на кнопку "Создать" в правой верхней части экрана. Сначала откроется окно, в котором Вам нужно будет ввести путь до папки, которую нужно закрыть. В нашем случае это опять же папка "administrator":

Нажимаете Ок. Теперь Вы создали путь, который желаете закрыть от посторонних глах. Осталось добавить пользователя, который будет иметь доступ к данной папке. Для этого смотрим опять в правую верхнюю часть экрана и ищем там "Пользователи":

Нажимаете на эту картинку и опять попадаете в пустую директорию, так как ещё не создан ни один пользователь, для которого будет открыт доступ. Справа вверху опять нужно нажать "Создать". Откроется окно для добавления нового пользователя:

Вводите свои данные и нажимайте ОК. Всё, пользователь создан, и программа сама сохранит файл с паролем и логином там, где ей нужно. Теперь для доступа в админку у Вас будет высвечиваться точно такое же окно для ввода логина и пароля, как и при использовании предыдущего способа защиты админку joomla.

Убираем просмотр модулей шаблона через ?tp=1 с помощью файла .htaccess

Как Вы помните из статьи о расположении модулей в Joomla, узнать о том, где какой модуль находится на сайте, можно просто введя в конце страницы /?tp=1. А мы с Вами уже знаем из статьи об улучшении безопасности Joomla, что нам нужно спрятать от хакеров все упоминания о joomla, чтобы нас не нашли. Скрыть этот параметр можно многими путями, но так как сегодня мы говорим и работе с файлом .htaccess, я расскажу способ скрытия /?tp=1 именно через него. Для этого нужно просто дописать в файле .htaccess вот такой кусок кода:

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

Joomla .htaccess - Генератор расширений Joomla и многое другое на нашем сайте посвященном работе расширений, компонентов, модулей, плагинов для линейки Joomla. Отправляйте ссылку на страницу своим друзьям и в социальные сети воспользовавшись графическими иконками выше.


Календарь приёма объявлений

Небольшой пример из повседневной практики. Организация меняет реквизиты, и они вступят в силу через пару недель. На сайте идет приём объявлений и объявления принимаются на несколько месяцев в.


Дырка в com_content


Лечим вирус на сайте

Первоначальный осмотр сайта обнаружил, что у клиента закрыт доступ по фтп, что сузило круг подозреваемых уязвимостей, стало быть отверстие в какомто скрипте движка joomla. Касперский яро.


Troj/JSRedir-MH

Снова грянул гром зарежения сайтов новым вирусом Troj/JSRedir-MH. И так в коротко по вирусу Troj/JSRedir-MH. Вирус или троян куда интереснее чем свои предшествиники, тепер.


Доработка расширения для рассылки Send Email JK

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


Привет Ie 10 регулярка

И вот и мне пришлось столкнулся с проблемами перехода на win 8 в придачу с ie 10, некоторых постоянных пользователей моих сайтов. На многих сайтах имеющих раздел по приёму объявлений, использ.

Kunena заменяем ссылку на профиль пользователя

Всем привет, снова снова кунена, получил задание на допиливание популярного форума Kunena, сегодня потребовалось поменять ссылку на профиль пользователя. Это связано с тем, что на сайте стоит социа.

Работает на Kunena - зачем на каждой странице?

Все у кого стоит форум kunena мешает надпись с двумя ссылкам внизу форума "Работает на Kunena". Сея надпись висит на каждой странице форма, а также страница разработчиков содержит множество вн.

Kunena избавимся от лишних quote

Для тех кто действительно делает сайт для людей, моя следующая заметка. Расскажу вам, как избавиться от лишних quote в постах на форуме kunena. У меня несколько тематических сайтов с нормальной посеща.

Kunena решаем проблему с пропажей аватаров

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

htaccess

Знаете ли вы, Вы можете значительно уменьшить размер и увеличить скорость загрузки вашего сайта, используя только .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

Советы и хитрости

Не все серверы одинаковы. Настройки сервера по умолчанию варьируются на каждом хостинге, а это означает, что некоторые параметры в файле .htaccess могут создать внутренную ошибку сервера 500. Лучший способ сузить поиск и выяснить реальную причину ошибки - это удалить кусок кода, загрузить, и снова проверить работоспособность сайта. Если ошибка сохраняется, замените первую часть и удалите другую, затем повторите шаги. Это очень удобно для того, чтобы записать номера строк, которые вы тестировали, чтобы найти причину ошибки.

Замечание

Это не исчерпывающее руководство, и оно не предназначено для того, чтобы быть сброшенным на ваш сайт Joomla в качестве замены стандартных файлов без предварительной настройки кода под ваш сайт и сервер. Требуется хорошее понимание кода файла .htaccess, иначе вы можете (временно) получить ошибку на своем сайте. Рекомендуем вам сначала протестировать ваш файл .htaccess на демо-сайте или демо-сервере, и помните, что всегда, абсолютно всегда нужно делать резервное копирование.

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

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

Иногда нужно, чтобы все старые адреса какой-либо категории переадресовывались на другую категорию:

У меня была ситуация, когда я перенес на другой сайт книгу, которая занимала целую категорию с несколькими сотнями страниц. Куда переадресовывать теперь эти страницы?

  • на новый сайт
  • на какие-то страницы этого же сайта

Чтобы не прописывать сотню адресов, я сделал такой вот rод.

RewriteRule ^staryy/(.*)$ /novyj[R=permanent,L]

Теперь все ссылки начинающиеся с staryy, будут переадресованы на одну страницу novyj.

Файл htaccess для Joomla

Ошибка «Strict Standards: Non-static method JLoader::import () should not be called statically in»

Для того чтобы не показывались ошибки

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

Идеальный htaccess для Joomla

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/css
<IfModule mod_setenvif.c>
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>
</IfModule>

FileETag MTime Size
<ifmodule mod_expires.c>
<filesmatch ".(jpg|jpeg|gif|png|ico|css|js)$">
ExpiresActive on
ExpiresDefault "access plus 1 month"
</filesmatch>
</ifmodule>

php_flag engine off

Вариант 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
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/css
</IfModule>

<IfModule mod_setenvif.c>
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>

<IfModule mod_expires.c>
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"
</IfModule>

DirectoryIndex glavnaja.html index.html index.htm index.php

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/css
<IfModule mod_setenvif.c>
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>
</IfModule>

FileETag MTime Size
<ifmodule mod_expires.c>
<filesmatch ".(jpg|jpeg|gif|png|ico|css|js)$">
ExpiresActive on
ExpiresDefault "access plus 1 month"
</filesmatch>
</ifmodule>

И не забываем, как с помощью файла htaccess, обеспечивается Защита панели управления по IP адресу.

В коробочной версии Joomla, есть два текстовых файла, назначение, которых не понятно с первого взгляда. Это файлы htaccess.txt и web-config.txt. Расположены они в каталоге CMS Joomla, а после установки Joomla, оказываются в корневом каталоге сайта. Разберем назначение файлов htaccess.txt и web-config.txt.

htaccess web config joomla3 foto1

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

  1. Веб-сервер, Apache для платформы Linux. Этот сервер исторически лидирует в сборках.
  2. Веб-сервер, Nginx для платформы Linux.
  3. Сборка Apache+ Nginx.
  • а также, IIS, для платформы Windows.

Здесь мы подошли к центральной части статьи. Файлы htaccess.txt и web-config.txt предназначены для управления работой веб-сервреров Apache и IIS Windows соответственно.

Для чего предназначены файлы htaccess.txt и web-config.txt

Файлы htaccess.txt и web-config.txt предназначены для управления работой веб-сервер Apache и IIS Windows означает, что с помощью специальных директорий прописанных в этих файлах, можно «давать команды» этим веб-серверам и руководить их работой. Например, можно закрыть определенные URL адреса, можно создать «черные списки» для IP посетителей, можно организовать перенаправление или склейку зеркал и т.д.

Как подготовить файлы htaccess.txt и web-config.txt к работе

Чтобы файлы htaccess.txt и web-config.txt выполняли свои задачи, нужно сразу после установки CMS Joomla, переименовать эти файлы:

  • Если у вас на сервере стоит Apache, то переименовываем htaccess.txt в .htaccess (точка вначале);
  • Если работаете на Windows, то переименовываете web-config.txt в web-config.

htaccess web config joomla3 foto2

Что будет, если не использовать файлы .htaccess и web-config

Если не использовать файлы .htaccess и web-config, то есть, просто их не переименовывать, то вы не сможете:

  • Использовать базовую SEO настройку Joomla «Перенаправление»;
  • Не сможете работать ни с одним SEO расширением Joomla (Artio JoomSEF, SH404).

Как влияют файлы .htaccess и web-config на безопасность сайта

Считается, что любой сайт управляющий поведением серверов потенциально является целью взлома. Поэтому, в рамках общей защиты сайта joomla, нужно установить права CHMOD на эти файлы 644. Напомню:

Читайте также: