Андрей Смирнов
Время чтения: ~12 мин.
Просмотров: 8

Файл htaccess: применение, включение, настройка

Генератор Продаж5a33a1aa1bab0a824f835a6467e9783c.png Время чтения: 15 минут Отправим материал вам на:

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

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

Из этой статьи вы узнаете:

  1. Что такое файл .htaccess
  2. Для чего он нужен и как его настроить
  3. Как включить файл htaccess и проверить его работу
  4. Как настроить файл htaccess для wordpress
  5. Какая может возникнуть ошибка
  6. Где можно скачать правильный файл .htaccess

Что такое файл .htaccess

В первую очередь напомним: файл htaccess применяется при работе с Apache и другими серверами и именно он необходим для установки ряда их характеристик. Изначально может напугать объемное, непривычное расширение файла .htaccess, однако на самом деле открыть его, внести корректировки можно в любом текстовом редакторе.

Дело в том, что цель создания формата файла .htaccess уникальна: с ним каждый пользователь легко вносит изменения в конфигурацию сервера, при этом, не затрагивая его полностью, работая лишь со своим сайтом. Не секрет, базовые директивы конфигурации Apache хранятся в файле httpd.conf. В этом и состоит вся сложность, ведь большая часть пользователей лишена доступа к такому файлу, а значит, не имеет прав на внесение изменений. Если же речь идет о виртуальном хостинге, этот вопрос затрагивает в принципе каждого пользователя – подобное модифицирование, произведенное одним человеком, коснется всех.

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

Рекомендуемые статьи по данной теме:

Способ 1

Для данного легкого метода заставим Apache с помощью директив файла htaccess искать «indexgood.html» до «index.html». Если .htaccess поддерживается, попадая в папку через браузер, Apache загрузит .htaccess, и на экране появится страница «indexgood.html» с поздравлением! В противном случае Apache, не обращая внимания на .htaccess, будет искать файл «index.html».

    # Эта директива заставит Apache искать

    # «index_good.html» перед «index.html» 

    DirectoryIndex index_good.html index.html 

Директива DirectoryIndex получает список, в котором через запятую перечисляются вероятные файлы. Если перед Apache ставятся URL директории, значит дается не прямой путь к файлу (не http://www.example.com и не http://www.example.com/index.html), поэтому он прибегнет к списку для обнаружения заданного файла. Движение по перечню идет слева направо. Если первый файл найден, он будет загружен, пользователь его увидит.

Способ 2

Обычный неверный синтаксис в вашем файле .htaccess. пригоден для проверки – сервер не сможет с ним справиться!

    # здесь мы намеренно допускаем ошибку

    AHHHHHHH 

«AHHHHHHH» – это не директива Apache, то есть приведет к ошибке, как только тот попытается осуществить просмотр файла htaccess. О чем это нам скажет? Если перед вами появится страница с «Internal Server Error» – поддержка работает. Так как данная ошибка означает, что сервер искал .htaccess файл. Если же вы увидите index.html – она отключена.

Вас также может заинтересовать: Сарафанное радио: принципы, методы и идеи необычного маркетинга

Как настроить файл htaccess для wordpress

Обсудим шаги, необходимые при настройке файла htaccess для wordpress.

  1. Прописываем запрет просмотра содержимого каталога (в качестве примера используем каталог vverx), в котором нет файла index.txt.

Если мы сохраним стандартный файл, перед всеми людьми, набирающими в браузере https://sales-generator.ru/ /vverx/, отобразится содержимое каталога, его файлов (листинг).

Это нам не нужно, поэтому после строки #  BEGIN WordPress прописываем:

Options -Indexes

Благодаря директиве Options, удается установить ряд однотипных параметров. Так директива может применяться с параметром Indexes. В подобном случае знак влияет на то, сможет ли посетитель увидеть список файлов. Так при «—» не увидит, если выбранный каталог не содержит файл index.txt или аналогичный ему. А при «+» увидит. Отметим, если требуется защита от хакерских атак, Options отлично подойдет.

  1. Указываем метод кодирования

WP по умолчанию пользуется кодировкой UTF-8. Мы должны в принудительном порядке установить кодировку файла htaccess указанным ниже кодом. Только так удастся избежать лишних проблем:

AddDefaultCharset UTF-8

Приятно, что вся работа состоит во внесении этой короткой строки.

  1. Сжатие контента

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

Apache предлагает два варианта сжатия. Специалисты выбирают модуль mod_deflate. Для этого в файл htaccess требуется ввести код:

AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript

BrowserMatch ^Mozilla/4 gzip-only-text/html

BrowserMatch ^Mozilla/4.0[678] no-gzip

BrowserMatch bMSIE !no-gzip !gzip-only-text/html

mod_gzip_on Yes

mod_gzip_item_include file .js$

mod_gzip_item_include file .css$

  1. Кеширование

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

Для кеширования в файле htaccess применяются модули mod_expires, mod_headers. Каждый тип файлов требует отдельной установки промежутка времени кеширования либо его отсутствия. Рассмотрим пример кода в mod_headers файла htaccess, с которым нельзя хранить в кеше php-файлы.

# Запрещение кеширования документов с php расширением

Header append Cache-Control «no-store, no-cache, must-revalidate»

ExpiresActive On ExpiresDefault «now»

Практически идеальный способ, подходит для любых файлов, кодируется так:

# Включаем кэш в браузерах посетителей

# Все html и htm расширения будут храниться в кэше браузера один день

Header set Cache-Control «max-age=43200»

# Все css, javascript и txt форматы, будут храниться в кэше браузера одну неделю

Header set Cache-Control «max-age=604800»

# Все флэш и изображения будут храниться в кэше браузера один месяц

Header set Cache-Control «max-age=2592000»

# Отключаем кеширование php и других расширений

Header unset Cache-Control

Вас также может заинтересовать: Незаконная предпринимательская деятельность: признаки и ответственность

Какая может возникнуть ошибка в файле .htaccess

Что делать, если сервер выдает 500 ошибку после создания файла .htaccess – Internal Erorr-  Ошибка синтаксиса или файл записан не в том формате? В этом случае необходимо проверить синтаксис .htaccess.

Обратите внимание на файл error.log в корне своего сайта (если он там есть). Допустим, он выглядит так:

[Tue Dec 20 02:29:10 2005] [alert] [client 127.0.0.1] w:/home/h15.ru/bospor/.htaccess: CustomLog not allowed here

Тогда строка говорит об ошибке в файле w:/home/h15.ru/bospor/.htaccess (http://bospor.h15.ru/.htaccess): Директива CustomLog здесь не подходит.

Вас также может заинтересовать: Таргетированная реклама в соцсетях: виды, настройка, идеи

Где можно скачать правильный файл .htaccess

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

  1. Стандартный код только созданного .htaccess для WordPress с правилом преобразования ссылок.
  2. Кодировка файлов в формат UTF-8.
  3. Блокировка доступа к отображению структуры сайта через браузер.
  4. Перенаправления адресов сайта с http://www.site.ru/ на без http://site.ru/
  5. Кеширование сайта браузером гостя (для быстрой загрузки сайта).
  6. Блокировка доступа к wp-config.php (файл включает пароли базы данных).
  7. Блокировка доступа к файлу .htaccess (файл включает настройки сервера).
  8. Удаление ненужного /category/ в url адресах страниц сайта.

Отметим, все остальное вносится в индивидуальном порядке.

Когда вам удалось скачать оптимальный файл .htaccess для WordPress, нужно открыть в Notepad++. Далее нажмите Cntr+F и замените в шести местах установленное по умолчанию zesite.ru на адрес своего сайта.

Но, допустим, данный оптимальный .htaccess для WordPress по определенному параметру вам не подходит, что делать? Откройте его на редактирование, чтобы удалить или внести недостающее правило.

Итак, теперь все манипуляции произведены, вам остается загрузить в корень сайта оптимальный .htaccess для WordPress вместо находящегося там файла .htaccess.

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

article_banner.png

Статья опубликована: 28.12.2017

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

saleslogo_black_bg.png

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

Содержание

Где лежит htaccess

Htaccess обязательно должен находится в корневой папке сайта, вместе с каталогами типа wp-admin. У меня лежит как показано на снимке, иначе работать не будет, сервер его не найдет.

htaccess-wp1.jpg
Где располагается объект

Как создать чистый htaccess

По умолчанию WordPress 5 должен создать htaccess, либо хостер добавляет его в каталог ресурса. Но бывает, что отсутствует, тогда создаем документ на компьютере с названием .htaccess с помощью стандартного блокнота.

htaccess-wp5.jpg
Создать в блокноте
  1. В меню выбираем Файл > Сохранить как
  2. Появляется окно, в нем вписываем название и папку для сохранения
  3. Нажимаем на Сохранить

После можно загрузить чистый документ на сервер или редактировать локально на компьютере, а потом перенести.

Что нужно добавить в htaccess обязательно

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

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

Стандартный htaccess

Если htaccess не было изначально, то нужно добавить стандартный код, который WordPress прописывает при установке.

# BEGIN WordPress <ifmodule> RewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </ifmodule> # END WordPress

301 редирект на https

Если к ресурсу прикреплен SSL сертификат, то необходимо занести после #BEGIN WordPress конфигурацию 301 редиректа.

RewriteEngine On  RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Как должен выглядеть правильный htaccess

В итоге правильный код htaccess должен выглядеть так:

# BEGIN WordPress RewriteEngine On  RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] <ifmodule> RewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </ifmodule> # END WordPress

Он проверен на множестве сайтов и работает безотказно. Никаких дублей, дыр в безопасности и остальных ошибок не наблюдали.

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

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

Что еще можно подключить в htaccess

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

  • Кэш браузера
  • Gzip сжатие
  • Защита wp-config, нет ли доступа его просмотреть

Кэш браузера

Для начала проверим активен ли кэш браузера на сайте, переходим на сервис webpagetest, вводим в поле url главной страницы и находим start scan.

htaccess-wp6.jpg
Проверка функций блога

Ждем процесса проверки и смотрим на результаты. Ищем строчку Leverage browser caching и определяем кэшируются ли документы. В моем случае да, исключение – метрика, аналитика и vk, на них повлиять нельзя.

htaccess-wp7.jpg
Есть ли кеш браузера

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

<ifmodule><filesmatch>Header set Cache-Control "max-age=43100</filesmatch><filesmatch>Header set Cache-Control "max-age=604700</filesmatch><filesmatch>Header set Cache-Control "max-age=2591000"</filesmatch><filesmatch>Header unset Cache-Control</filesmatch></ifmodule>

Gzip сжатие

Gzip сжатие потеряло актуальность при появлении AMP и Турбо страниц, но пользоваться ими нужно. Проверяем тем же сервисом webpagetest, только ищем строчку «Use gzip compression for transferring compressable responses».

htaccess-wp8.jpg
Наличие gzip сжатия

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

<ifmodule>   mod_gzip_on Yes   mod_gzip_dechunk Yes   mod_gzip_item_include file .(html?|txt|css|js|php|pl)$   mod_gzip_item_include mime ^application/x-javascript.*   mod_gzip_item_include mime ^text/.*   mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*   mod_gzip_item_exclude mime ^image/.*    mod_gzip_item_include handler ^cgi-script$ </ifmodule>

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

  • Beget
  • Timeweb
  • Masterhost

Для безопасности и защиты wp-config

В 99,9% проблемы нет, но перестраховаться стоит. Заходим на сайт и приписываем к адресу /wp-admin.php, смотрим что выдает браузер.

htaccess-wp9.jpg
Отображение wp-config

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

<files> order allow,deny deny from all </files>

Посетители спрашивают, а нужно ли добавлять правила для плагинов WooCommerce, BBPress, Elementor и им подобным. Отвечу – нет, все встроено в сами плагинах. Будет полезно прочитать как создавать robots txt. В заключении дам видео инструкцию, чтобы сделать процесс более понятным.

Вывод настройки

Настройка htaccess в WordPress не сложная, потому что разработчики и хостер сделали все условия, чтобы снизить количество ошибок. В статье показал правильный вариант, в котором только стандартные директивы и перенаправление на https, остальные функции должны быть встроены и работать изначально. В любом случае сначала пишем в поддержку, и только потом делаем сами.

Пожалуйста, оцените материал: Используемые источники:

  • https://sales-generator.ru/blog/fayl-htaccess/
  • https://wpcourses.ru/htaccess-wordpress/

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации