Настройка файла

Социальные сети
Содержание
  1. Что такое .htaccess
  2. Резервное копирование файла
  3. Дополнительные сценарии использования .htaccess
  4. Изменение главной (индексной) страницы сайта
  5. Защита сайта от кражи изображений
  6. Запрет доступа к конкретному файлу
  7. Запрет доступа ко всем файлам с конкретным расширением
  8. Блокирование посетителей, в зависимости от заголовка User-Agent
  9. Использование .htaccess на виртуальном или выделенном сервере
  10. Настройка редиректов в htaccess
  11. Включение серверных включений (SSI)
  12. Где находится файл .htaccess
  13. Кэширование в htaccess
  14. Как проверить, работает ли .htaccess
  15. Как запретить доступ к файлу, папке или всему сайту
  16. Как запретить доступ к файлам определенного типа
  17. Как запретить просмотр директорий в .htaccess
  18. Как настроить 301 редиректа для сайта
  19. Как включить обработку ошибок
  20. Проблемы с производительностью из-за файла .htaccess в WordPress
  21. Повышение производительности сайта WordPress с помощью файла .htaccess
  22. Отключить AllowOverride
  23. Передайте набор символов
  24. Сохранить пропускную способность
  25. Установите часовой пояс сервера
  26. Установите адрес электронной почты администратора
  27. Включите кеширование браузера
  28. Обработка ошибок
  29. Ошибки запроса клиента
  30. Ошибки сервера
  31. Защита паролем
  32. Как создать имя пользователя и пароль в командной строке
  33. Альтернативный метод
  34. IP черный список и белый список
  35. Блокировать пользователей по рефереру
  36. Указание файла по умолчанию для каталога WordPress
  37. 3. Диагностика ошибок
  38. Как поменять имя файла .htaccess
  39. Как создать
  40. Объединение файла .htaccess с главными конфигурационными файлами
  41. Как сделать .htaccess в Windows
  42. Как исправить ошибку 500 из-за .htaccess
  43. Работа с файлом .htaccess
  44. Правильный 301 редирект
  45. Правильное изменение страниц ошибок
  46. Настройки безопасности сайта
  47. При защите от скриптинговых атак
  48. Для защиты от кражи картинок
  49. Заблокировать доступ к сайту
  50. Оптимизация работы сайта
  51. Ускорение работы с сайта за счет сжатия информации

Что такое .htaccess

.htaccess ー — это файл веб-сервера, который позволяет управлять настройками веб-сайта и работой сервера без изменения файла конфигурации.

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

Благодаря работе с .htaccess вы сможете:

  • настроить редирект;
  • изменить страницы ошибок;
  • сделать сайт более безопасным;
  • увеличить скорость работы сайта;
  • настроить параметры пхп.

Резервное копирование файла

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

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

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

Дополнительные сценарии использования .htaccess

Изменение главной (индексной) страницы сайта

Когда вы открываете веб-сайт в браузере, страница index.html или index.php загружается автоматически. Чтобы изменить этот параметр для использования индексного файла с именем, например, about.html, используйте следующую команду в .htaccess:

DirectoryIndex about.html

Защита сайта от кражи изображений

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

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

http://mysite.ru/images/stop_stealing.gif — адрес (URL) изображения, специально созданный владельцем сайта. Он содержит такой текст, как «не воровать изображения с веб-сайтов других людей», чтобы показать другим веб-мастерам, что они не хотят использовать файлы графических изображений со своего веб-сайта.

Запрет доступа к конкретному файлу

Чтобы запретить доступ к определенному файлу на веб-сайте, используйте следующие команды .htaccess:

Запрет доступа ко всем файлам с конкретным расширением

Если вам нужно запретить доступ ко всем файлам с определенным расширением (типом), используйте следующий набор команд:

В этом примере доступ запрещен ко всем файлам с расширением .txt

Блокирование посетителей, в зависимости от заголовка User-Agent

User-Agent — это специальный заголовок для протокола HTTP, с помощью которого браузер указывает имя и версию при запросе страницы.

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

Чтобы заблокировать доступ к сайту в зависимости от заголовка User-Agent, используйте следующий код в .htaccess:

#Список пользовательских агентов, которые нужно заблокировать:
Пользовательский агент SetEnvIfNoCase ^FrontPage NC,OR
Агент пользователя SetEnvIfNoCase ^Java.* NC,OR
Агент пользователя SetEnvIfNoCase ^Microsoft.URL NC,OR
Агент пользователя SetEnvIfNoCase ^MSFrontPage NC,OR
Агент пользователя SetEnvIfNoCase ^Offline.Explorer NC,OR
User-Agent SetEnvIfNoCase ^Wweb[Bb]andit NC,OR
Агент пользователя SetEnvIfNoCase ^Zeus [NC]

Порядок разрешить, запретить
Разрешить от всех
Отказаться от env=bad_bot

Использование .htaccess на виртуальном или выделенном сервере

При использовании собственного сервиса VPS/VDS или выделенного сервера у вас есть полный доступ к изменению настроек веб-сервера Apache путем редактирования основных файлов конфигурации. В то же время использование файлов .htaccess также является практичным способом внесения изменений в сервер без перезагрузки.

Для редактирования файлов .htaccess из командной строки сервера используйте текстовые редакторы vi, nano, mcedit.

Как работает .htaccess

1. Когда веб-сервер получает запрос по HTTP (или HTTPS) к файлу на сервере (конкретной странице на сайте), он сначала проверяет наличие файла .htaccess в той же папке (или в одной из папки выше по иерархии, из корневого каталога сайта).
2. Если файл найден, веб-сервер считывает из него конфигурационные команды и использует их в своей работе.

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

Чтобы Apache использовал в своей работе файл .htaccess, необходимо в конфигурации веб-сервера указать директиву «AllowOverride All» для конкретной директории. Его необходимо прописать в конфигурационном файле веб-сервера Apache (httpd.conf) — /etc/httpd/conf/httpd.conf или /etc/apache2/apache2.conf (в зависимости от версии веб-сервера и операционной система).

Директива должна выглядеть так:

Альтернативные индексы
Разрешить переопределить все
Требовать все предоставлено

/var/www/ следует заменить каталогом вашего веб-сайта, если это необходимо.

После внесения изменений не забудьте перезапустить веб-сервер, предварительно проверив правильность настройки:

httpd -t

Если вывод синтаксиса в порядке, запустите: service httpd restart.

По умолчанию провайдеры включают эту настройку для папок с пользовательскими сайтами на виртуальном хостинге, а владельцы VPS/VDS и выделенных серверов должны сами проверять наличие такой конфигурации в Apache.

Имя служебного файла в Apache можно изменить. Это контролируется директивой AccessFileName. Например, если вы укажете директиву «AccessFileName .config» в конфигурации Apache, веб-сервер будет искать файлы .config вместо .htaccess. Но название файла .htaccess стало отраслевым стандартом и поэтому этот файл используется на хостинге.

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

Веб-сервер Apache чувствителен к недопустимым или неизвестным командам в .htaccess. Если синтаксис этого файла нарушен, запрос к любому файлу вернет ошибку 500 (Ошибка конфигурации сервера) в браузер посетителя. Поэтому следует внимательно редактировать файл .htaccess и сразу после его изменения проверять работоспособность вашего сайта.

Проверить, включена ли на сервере поддержка .htaccess, легко: нужно добавить в этот файл команду error (любое предложение на английском языке с ошибкой) и открыть страницу в браузере. Если появляется ошибка 500, это означает, что веб-сервер настроен на использование .htaccess и может использоваться для отладки определенного веб-сайта.

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

.htaccess — это текстовый файл.

Каждая строка в файле означает определенную команду конфигурации Apache (directive.

Пустые строки игнорируются.

Строки, начинающиеся со знака решетки «#», являются комментариями и не влияют на конфигурацию веб-сервера.

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

# убираем косую черту в конце адреса
RewriteCond %{REQUEST_URI} .+/$ [NC]
Правило перезаписи ^(.+)(/)$1$ [L,R=301]

Как редактировать .htaccess?

Вы можете редактировать файл .htaccess на своем хостинге, используя FTP-доступ, например, с помощью FTP-клиента Filezilla.

Для этого щелкните файл правой кнопкой мыши, чтобы открыть контекстное меню с пунктом «Просмотр/Редактировать”.

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

Мы не рекомендуем использовать Блокнот Windows для редактирования файла .htaccess и других файлов конфигурации.

Иногда, если используются старые FTP-клиенты, .htaccess не отображается в списке файлов. Это связано с тем, что имя начинается с точки. Вам следует обновить FTP-клиент или проверить настройки, чтобы отключить фильтрацию файлов, начинающихся с точки. При использовании Filezilla таких проблем нет.

Как мы писали выше, файл .htaccess автоматически генерируется в папке сайта хостинга при создании сайта для некоторых CMS, например WordPress. Но есть движки, которые размещают этот файл под другим именем. Например, Joomla создает файл htaccess.txt, и его необходимо изменить вручную.

Если в папке сайта нет файла, создайте его самостоятельно.

1. Для этого открываем блокнот (блокнот), добавляем туда нужные команды и сохраняем как текстовый документ под названием .htaccess.
2. Переименуйте сохраненный файл, удалив расширение «.txt”.
3. Используя FileZilla, загрузите его по FTP в папку на вашем сайте.

Также .htaccess можно редактировать из панели управления хостингом.

1. Для редактирования .htaccess в панели управления заходим в файловый менеджер.
2. Откройте корневую папку страницы public_html, найдите в ней файл .htaccess и отредактируйте его во встроенном редакторе.

Так выглядит работа с .htaccess от провайдера Beget

Наиболее востребованные настройки в связи с веб-хостингом будут рассмотрены ниже.

Читайте также: 37 идей для дополнительного заработка в свободное время без вложений

Настройка редиректов в htaccess

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

Самый простой редирект можно сделать без mod_rewrite, с такой строкой:

Редирект 301 /index.html http://www.site.ru/index.php

Но обычно нужны редиректы с более широким эффектом. Все выглядит очень похоже, только теперь мы используем флаг [NC] для учета регистра, [L] для остановки обработки и [R] для перенаправления. Например, перенаправляем htaccess с версии без www на домен с www:

RewriteCond %{HTTP_HOST} ^site.ru$ [NC]

Правило перезаписи ^(.*)$ http://www.site.ru/$1 [R=301,L]

Значение R=301 означает, что код редиректа будет возвращен клиенту, можно использовать 301, 302 и т.д. Редирект htaccess с домена www на домен без префикса будет выглядеть так:

RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]

Правило перезаписи ^(.*)$ http://site.ru/$1 [R=301,L]

Таким же образом можно сделать редирект:

Правило перезаписи ^старый_адрес /новый_адрес/$1 [R=301,L]

Редирект с http версии на https:

RewriteCond %{SERVER_PORT} ^80$ [ИЛИ]

RewriteCond %{HTTP} = on

Правило перезаписи ^(.*)$ https://site.ru/$1 [R=301,L]

Включение серверных включений (SSI)

Что такое серверная часть?

SSI, или серверные включения, представляет собой упрощенный язык сценариев, который в основном используется для встраивания документов HTML в другие документы HTML.

Это упрощает повторное использование общих элементов, таких как верхние и нижние колонтитулы, боковые панели и меню. Вы можете думать о нем как о предшественнике современных систем управления шаблонами и контентом.

SSI также имеет условные директивы (if, else и т д.) и переменные, что делает его полноценным, хотя и несколько сложным в использовании языком сценариев. (Как правило, любой проект более сложный, чем несколько включений, вынуждает разработчика выбирать более надежный язык, такой как PHP или Perl.)

Включает SSI

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

AddType текст/html .shtml

Обработанный сервером AddHandler .shtml

Опционы Индексы FollowSymLinks включают

Это должно включить SSI для всех файлов с расширением .shtml.

SSI для файлов .html

Если вы хотите включить синтаксический анализ SSI для файлов .html, вы можете добавить для этого директиву:

Сервер AddHandler-parsed.html

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

Недостатком этого является то, что каждый файл .html будет анализироваться SSI. Если у вас есть много файлов .html, которые на самом деле не нуждаются в анализе SSI, это может вызвать много ненужных накладных расходов на сервер, замедлить время загрузки страницы и растратить ресурсы ЦП.

SSI на главной странице

Если вы не хотите анализировать все файлы .html, но действительно хотите использовать SSI в индексе (домашней) страницы, вы должны указать его в файле .htaccess.

Это связано с тем, что когда веб-сервер ищет индексную страницу каталога, он ищет index.html, если вы не укажете иное.

Если вы не анализируете файлы .html, ваша индексная страница должна называться index.shtml для работы SSI, и ваш сервер по умолчанию не будет знать, что нужно искать ее.

Чтобы включить это, добавьте:

DirectoryIndex index.shtml index.html

Это уведомляет веб-сервер о том, что этот файл index.shtml является основным файлом индекса для каталога. Второй параметр, index.html, является запасным на случай, если index.shtml не найден.

Где находится файл .htaccess

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

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

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

В некоторых системах управления контентом ー Система управления контентом (CMS) ー .htaccess можно найти в панели администратора. Пример из Битрикс:

Пример из Битрикс

Кэширование в htaccess

Браузер позволяет кэшировать изображения, файлы сценариев, стили и другие медиафайлы на определенное время. Время жизни кеша задается веб-сервером с помощью специальных заголовков. Их можно настроить с помощью модуля expires.

Сначала мы активируем модуль и устанавливаем период кеша по умолчанию:

Срок действия истекает

Истекает Стандартный «Доступ плюс 1 месяц»

Теперь мы можем настроить кеширование для каждого типа mime-файла:

ExpiresByType text/html «доступ плюс 1 месяц 15 дней 2 часа»

ExpiresByType image/gif «доступ плюс 5 часов 3 минуты»

ExpiresByType image/x-icon «доступ плюс 2592000 секунд»

В первой строке указываем, что html страницы должны считаться действительными в течение одного месяца 15 дней и двух часов с момента загрузки. Доступны следующие типы файлов:

  • изображение/значок x;
  • изображение/jpeg;
  • изображение/png;
  • изображение/гиф;
  • приложение /x-shockwave-flash;
  • текст/CSS;
  • текст/javascript;
  • приложение/javascript;
  • приложение/x-javascript;
  • текст/html;
  • приложение/xhtml+xml;

Чтобы убедиться, что эта конструкция не сработает, поместите ее в if:

Как проверить, работает ли .htaccess

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

Если этого не произойдет, .htaccess не будет работать. При нормальной работе будет выдаваться внутренняя ошибка сервера 500.

Как запретить доступ к файлу, папке или всему сайту

Когда страница находится в «ремонтных работах», она работает нестабильно. Чтобы предотвратить доступ к нему в это время не-разработчиков, вы можете ограничить доступ к сайту или отдельным файлам.

  • Чтобы заблокировать доступ ко всему сайту, добавьте в файл следующие строки:

Отказать в заказе, разрешить отказать от всех

  • Чтобы заблокировать доступ к определенной папке, создайте в этой папке новый файл .htaccess и добавьте в него приведенный выше код.
  • Чтобы запретить доступ всем посетителям, кроме определенного IP (можно указать несколько IP-адресов через запятую), введите:

Заказ Запретить, Разрешить Запретить от всех Разрешить от 123.123.123.123

Где 123.123.123.123 — IP-адрес, для которого разрешен доступ.

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

Заказать Deny.Allow Deny от всех

Где example.exe — это имя файла, к которому вы хотите заблокировать доступ.

Как запретить доступ к файлам определенного типа

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

Для этого добавьте следующие строки:

Заказать Deny.Allow Deny от всех

Где вместо txt, pdf, jpg нужные вам расширения.

Как запретить просмотр директорий в .htaccess

При определенных знаниях любой может увидеть структуру вашего сайта (в первую очередь листинг — это список всех каталогов на сайте). Чтобы отключить отображение записи, вы можете ввести одну строку в .htaccess:

Индексы опционов

Чтобы открыть вид списка, введите:

Опции+индексы

Как настроить 301 редиректа для сайта

Настройке редиректов в .htaccess мы посвятили отдельную статью, где рассмотрели 10 различных вариантов редиректов.

Рассмотрим самый распространенный тип: редирект с одного домена на другой. Используется, если сайт переехал на новый домен в связи с ребрендингом, сменой официального названия компании или техническими причинами.

Чтобы создать редирект, добавьте следующие строки в ваш .htaccess:

RewriteEngine On RewriteCond %{HTTP_HOST} site1.ru RewriteRule (.*) http://site2.ru/$1 [R=301,L]

Где site1.ru — исходный домен, site2.ru — конечный домен.

Как включить обработку ошибок

Чтобы указать пользовательские страницы ошибок, используйте директиву ErrorDocument. Добавьте в .htaccess директиву с номером ошибки и адресом сгенерированной страницы:

Документ об ошибке 404 http://site.ru/error/404.html

Где:

  • site.ru — домен вашего сайта;
  • error — папка, в которой находится страница с ошибкой (если ее нет, пропустите эту ссылку);
  • 404.html — это имя страницы с ошибкой.

Проблемы с производительностью из-за файла .htaccess в WordPress

Каждый раз, когда кто-то посещает ваш веб-сайт, веб-сервер загружает все конфигурации файла .htaccess. Он ищет все каталоги в домене. Это повлияет на производительность веб-сайтов с высоким трафиком. Некоторые другие распространенные проблемы, которые можно решить с помощью файла htaccess WordPress:

  • предупреждения о длине постов
  • превышает максимальный размер загрузки
  • 413 ошибка объекта запроса
  • 500 — внутренняя ошибка сервера

Поэтому файл .htaccess следует использовать, когда основная конфигурация сервера недоступна. Что еще вы можете сделать, чтобы улучшить производительность вашего сайта? Давайте рассмотрим различные приемы повышения производительности с файлами WordPress .htaccess:

Повышение производительности сайта WordPress с помощью файла .htaccess

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

Отключить AllowOverride

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

# повысить производительность, отключив AllowOverride

Разрешить переопределение Нет

Передайте набор символов

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

# передать кодировку по умолчанию

Кодировка AddDefaultCharset utf-8

Сохранить пропускную способность

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

# сохранить пропускную способность для серверов с поддержкой PHP

php_value zlib.output_compression 16386

Установите часовой пояс сервера

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

# устанавливаем часовой пояс сервера

SetEnv TZ Америка / Вашингтон

Установите адрес электронной почты администратора

Введите адрес электронной почты по умолчанию для администратора сервера.

# введите адрес электронной почты администратора сервера

SetEnv SERVER_ADMIN default@example.com

Включите кеширование браузера

Кэширование браузера позволит посетителям сохранять элементы вашего сайта. Тогда им не придется загружать их снова. Он используется для разработки различных элементов, таких как таблицы стилей CSS и мультимедийные элементы. Это удобное решение, которое позволяет посетителям загружать изображения, хранящиеся на их компьютере, а не на вашем сервере. Это значительно снизит пропускную способность и увеличит время загрузки страницы.

Добавьте этот код, чтобы включить кеширование браузера:

## ИСХОДИТ КЭШИРОВАНИЕ ##

Срок действия истекает

ExpiresByType image/jpg «доступ 1 год»

ExpiresByType image/jpeg «доступ 1 год»

ExpiresByType image/gif «доступ 1 год»

ExpiresByType image / png «доступ 1 год»

ExpiresByType text/css «доступ 1 год»

app ExpiresByType / pdf «доступ 1 месяц»

ExpiresByType text/x-javascript «доступ 1 месяц»

доступ ExpiresByType / x-shockwave-flash «доступ 1 месяц»

доступ ExpiresByType image / x icon » 1 год

доступ » ExpiresStandard » 2 дня »

Обработка ошибок

Когда вы нажимаете на страницу на веб-сайте, за кулисами происходит отправка запроса на веб-сервер. И если все пойдет хорошо, веб-сервер выдаст вам запрошенную страницу. Но если что-то пойдет не так, вы обычно получите сообщение об ошибке. Именно ваш файл .htaccess управляет этими сообщениями об ошибках.

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

файл-htaccess-подробное-описание-где-находится-настройка-и-оптимизация-7dea10b.png

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

Мы рекомендуем обрабатывать каждое сообщение об ошибке, создавая отдельное сообщение об ошибке для разных кодов ошибок. Веб-сайты в наши дни делают еще один шаг вперед и настраивают сообщение об ошибке с юмором или персонализацией. Вот руководство, которое расскажет вам, как создавать эти пользовательские сообщения.

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

# показать пользовательские страницы ошибок

Документ об ошибке 400 /errors/400.html

Документ об ошибке 401 /errors/401.html

Документ об ошибке 403 /errors/403.html

Документ об ошибке 404 /errors/404.html

Документ об ошибке 500 /errors/500.html

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

Что такое код ошибки?

Когда запрос отправляется веб-серверу, он пытается ответить на этот запрос, обычно доставляя документ (в случае HTML-страниц) или обращаясь к приложению и возвращая результаты (в случае систем управления контентом и других веб-приложений). Приложения).

Если что-то пойдет не так, выдается ошибка. Различные типы ошибок имеют разные коды ошибок. Возможно, вам знакома ошибка 404, которая возвращается, если документ не найден на сервере.

Есть много других кодов ошибок, на которые сервер может ответить.

Ошибки запроса клиента

  • ошибка 400, неверный запрос
  • 401 — требуется авторизация
  • 402 — Требуется оплата (еще не использовано)
  • 403 Запрещено
  • 404 Не Найдено
  • 405 — Метод не разрешен
  • 406 — Неверный (Кодировка)
  • 407 — Требуется аутентификация прокси
  • 408 – время ожидания запроса истекло
  • 409 — конфликтующий запрос
  • 410 — ушел
  • 411 – требуется длина содержимого
  • 412 — Предварительный отказ
  • 413 — объект запроса слишком длинный
  • 414 — слишком длинный URI запроса
  • 415 — неподдерживаемый тип носителя.

Ошибки сервера

  • 500 — внутренняя ошибка сервера
  • 501 — не реализовано
  • 502 Неверный шлюз
  • служба 503 недоступна
  • Ошибка 504 Время ожидания ответа сервера истекло
  • 505 — версия HTTP не поддерживается.

Защита паролем

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

Основной тип авторизации

AuthName «Защищенная паролем область»

AuthUserFile /путь/к/.htpasswd

Требовать действительного пользователя

Примечание. В приведенном выше коде измените выделенный входной путь / на / .htpasswd на полный путь к файлу .htpasswd. Если вы не знаете всего пути, не беспокойтесь. Просто обратитесь к этому краткому руководству .

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

имя пользователя: зашифрованный пароль

Замените «имя пользователя» на любое по вашему выбору и «зашифрованный пароль» на настоящий зашифрованный пароль. Чтобы зашифровать пароль по вашему выбору, запустите его с помощью алгоритма и сохраните результат безопасно и надежно. Но когда вы входите в систему, вы должны использовать оригинальный пароль, соответствующий имени пользователя, а не зашифрованный.

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

Интересно, где можно взять эти алгоритмы? Вы можете использовать два безопасных алгоритма: bcrypt, md5. Apache поддерживает оба, но md5 — это тот, который используется в текущих версиях Apache.

Как создать имя пользователя и пароль в командной строке

Вы можете добавить больше пар имени пользователя и пароля, как показано в поле выше. Это можно сделать с помощью командной строки или терминала SSH.

Чтобы создать новый файл .htpasswd, используйте команду с -c (команда для создания), за которой следует путь к каталогу (один сервер).

> htpasswd -c /pathdirectory/.htpasswusername

Альтернативный метод

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

IP черный список и белый список

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

Чтобы заблокировать определенные IP-адреса, используйте приведенную ниже команду в файле .htaccess.

приказ разрешить, запретить

запретить с 231.23.5.1

разрешить от всех

Не забудьте добавить IP-адреса, которые вы хотите заблокировать, вместо тех, которые мы добавили.

Приведенная выше командная строка позволяет вам использовать директиву по умолчанию. И тогда тем, кто будет упомянут против отказа, будет отказано во въезде.

Чтобы разрешить определенные IP-адреса, вам нужно изменить порядок директивы, т.е вместо или порядок разрешить, запретить, вам нужно добавить порядок запретить, разрешить, как показано ниже. Это ограничит все IP-адреса, кроме тех, которые вы указали иным образом.

приказ отказать, разрешить

отрицать от всех

разрешить с 111.22.3.4

Блокировать пользователей по рефереру

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

Переписать двигатель на

RewriteCond % ^http://.*example.com NC,OR

RewriteCond % ^http://.*toexample.com NC,OR

RewriteCond % ^http://.*oneexample.com [NC]

Правило перезаписи .* — [F]

Вам нужно заменить example.com URL-адресом, который вы хотите заблокировать. Остальное должно остаться прежним.

Указание файла по умолчанию для каталога WordPress

Когда вы обращаетесь к веб-сайту без указания имени файла, большинство веб-серверов предполагают, что запрос относится к каталогу. Таким образом, веб-сервер обычно обслуживает стандартный файл из корневого каталога, также называемый индексным файлом или index.html .

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

Просто включите следующую директиву в файл .htaccess.

DirectoryIndex [имя файла здесь]

Замените имя файла на любое другое.

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

3. Диагностика ошибок

Если вы получаете ошибку 500 после редактирования или публикации файла .htaccess при доступе к вашему сайту, возможно, в файле .htaccess есть ошибка. Посмотреть причины можно в лог-файле /var/log/your_domain.error_log.

Как поменять имя файла .htaccess

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

Для этого используйте директиву AccessFileName, которая позволяет переименовать файл .htaccess во что-то другое. Допустим, мы решили назвать файл .config, тогда нам нужно добавить в файл конфигурации сервера следующее:

ИмяФайлаДоступа «.config»

Как создать

Вы можете создать .htaccess в любом текстовом редакторе, таком как Microsoft Notepad или Notepad++.

Последнее предпочтительнее, так как в Блокноте при сохранении файла в кодировке UTF-8 может быть маркер последовательности байтов (подпись BOM) ー специальный символ, вставленный в начало текстового файла. Это может привести к проблемам с декодированием информации.

Чтобы создать .htaccess, откройте пустой файл в редакторе, нажмите «Файл» -> «Сохранить как», назовите его .htaccess и установите расширение файла «Все файлы». Затем сохраните и поместите его в корневой каталог веб-сайта.

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

Объединение файла .htaccess с главными конфигурационными файлами

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

AllowOverride All Options +IncludesNoExec -ExecCGI

В этом примере предполагается, что ваш DocumentRoot — это /www/htdocs.

Как сделать .htaccess в Windows

Если ваш сайт создан на CMS (WordPress, Joomla, 1С Битрикс и другие), файл .htaccess будет сгенерирован автоматически. Вы можете найти его в корневой папке вашего сайта в панели управления хостингом. Обычно по умолчанию файл не содержит никакой информации, кроме нескольких строк комментариев.

Примечание! На хостинге cPanel .htaccess и все остальные файлы, начинающиеся с точки, по умолчанию скрыты. Следуйте инструкциям, чтобы он появился в корневой папке.

Если сайт писался с нуля, а не на CMS, или файл по какой-то причине был удален, вы можете создать его на компьютере. Чтобы создать файл .htaccess на компьютере с Windows:

  1. 1. Откройте Блокнот.
  2. 2.Нажмите «Файл» → «Сохранить как» (или используйте сочетание клавиш Ctrl + Shift + S):

    создать файл 1

  3. 3.В столбце «Тип файла» выберите «Все файлы». Затем введите «.htaccess» в поле «Имя файла» и нажмите «Сохранить:

    создать файл 2

Готово, файл создан.

Если файл сохранен под именем .htaccess.txt, удалите расширение текстового файла (.txt). Для этого откройте проводник, перейдите на вкладку «Вид» и снимите флажок «Расширения имен файлов»:

создать файл 3
Интерфейс проводника в Windows 10

Когда файл будет готов, загрузите его в корневую папку сайта. Для этого войдите в панель управления и следуйте соответствующим инструкциям:

ISPmanager cPanel Plesk

  1. 1. Перейдите в Файловый менеджер → раздел www и выберите домен вашего сайта.
  2. 2. Нажмите кнопку «Загрузить» на панели значков вверху.
  3. 3.Нажмите «Выбрать файл», найдите созданный файл .htaccess на локальном диске и нажмите «ОК:

    Загрузить файл в ISPmanager 6

Готово, файл добавлен в «корень» сайта.

Примечание. Если ваша панель управления выглядит иначе, чем представленная в статье, измените тему оформления с paper_lantern на jupiter в разделе «Основная информация.

  1. 1.В разделе «Файлы» нажмите «Диспетчер файлов:

    создать файл 5

  2. 2.Найдите корневую папку вашего сайта в списке слева, нажмите на нее и на строку выше нажмите Скачать:

    создать файл 6

  3. 3.В открывшемся окне нажмите Choose File и выберите файл .htaccess.

Готово, файл будет загружен.

  1. 1.В разделе требуемый домен выберите Файловый менеджер:

    создать файл 7

  2. 2. Нажмите Загрузить на верхней панели и откройте сгенерированный файл .htaccess.

Готово, файл будет загружен.

Как исправить ошибку 500 из-за .htaccess

Как избавиться от ошибки 500, если такие строчки прописаны в .htaccess. Мы рекомендуем сохранить эти строки на вашем компьютере и удалить их из файла .htaccess. Второй и более правильный выход из этой ситуации — закомментировать эти строки, что делается следующим образом.

Например, в файле мы сначала написали:

php_value memory_limit 64M

php_flag register_globals выключен

Добавляем символ «#» в начало каждой строки:

#php_value memory_limit 64M

#php_flag register_globals выключен

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

Обратите внимание, что это может привести к тому, что веб-сервер будет игнорировать все строки в файле .htaccess, что приведет к ошибке 500 (внутренняя ошибка сервера). Эти строки могут быть записями для mod_rewrite, настройками кэширования и другими записями.

Работа с файлом .htaccess

Кроме того, .htaccess можно использовать для настройки редиректа, исправления ошибок на страницах, настройки безопасности сайта и оптимизации производительности, а также настроек php.

Правильный 301 редирект

Сначала пишем:

Переписать двигатель на

Это сделано для того, чтобы перенаправление работало. Кроме того, в зависимости от необходимости:

  • Перенаправление с одной страницы на другую (или веб-сайт):

Редирект 301 /old-page.html http://сайт.рф/new-page.html

  • Перенаправление с сайта с www на сайт без www:

Опции +FollowSymLinks

Переписать двигатель на

RewriteCond %{HTTP_HOST} ^www.domain.com$ [NC]

Правило перезаписи ^(.*)$ http://domain.com/$1 [R=301,L]

  • Перенаправить пользователей с одного сайта на другой:

Перенаправление 301 / http://newsite.com/

  • Перенаправление из одного раздела в другой:

RewriteRule ^blog/raznoe/(.*)$ http://site.ru/blog/$1 [R=permanent,L]

  • Редирект при смене домена:

RewriteCond %{HTTP_HOST} ^www.oldsite.com$ NC,OR

RewriteCond %{HTTP_HOST} ^test.oldsite.com$ [NC]

Правило перезаписи ^(.*)$ http://newsite.com/$1 [R=301,L]

Правильное изменение страниц ошибок

Коды ошибок от 400 до 599 указывают на некорректную работу сервера, но для обычного пользователя они ничего не значат. Увидев непонятный текст, он может решить, что страница перестала работать, и больше никогда на нее не возвращаться.

Чтобы не терять посетителей, нужно создать для этого отдельную страницу, которая вежливо сообщает человеку, что он пришел не туда, и перенаправляет на правильный адрес:

Нет такой страницы

После этого добавьте в .htaccess следующий код:

Документ об ошибке 404 http://yoursite.com/404.html

Настройки безопасности сайта

Код зависит от того, что именно вы хотите сделать и как вы защищаете свой сайт.

При защите от скриптинговых атак

Скриптовая атака — это внедрение злоумышленником вредоносного кода на веб-страницу.

  • для отслеживания символических ссылок (уловка, которая заставляет систему думать, что файл настоящий, хотя на самом деле это не так), включает в себя:

Опции +FollowSymLinks

  • блокировать ссылки с

Для защиты от кражи картинок

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

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

Опции +FollowSymlinks

Переписать двигатель на

Переписать условие %{HTTP_REFERER} !^$

RewriteCond %{HTTP_REFERER} !^http://(www.)?yoursite.com/ nc

Правило перезаписи .*.(gif|jpg|png)$ http://yoursite.com/images/stop_stealing.gifnc

Заблокировать доступ к сайту

  • для определенного IP:

разрешить от всех

запретить с 164.186.15.116

запретить с 124.153.34.144

  • для всех IP, кроме нужных:

Документ об ошибке 403 http://www.yoursite.com

Заказать запретить, разрешить

Отказаться от всех

Разрешить с 164.186.15.116

Разрешить с 124.153.34.144

  • чтобы запретить доступ к папке:

Опции Все индексы

  • чтобы запретить доступ к файлу:

приказ разрешить, запретить

отрицать от всех

  • чтобы запретить доступ к определенным типам файлов:

Заказать запретить, разрешить

Отказаться от всех

  • чтобы заблокировать расширения:

Агент пользователя SetEnvIfNoCase ^Zeus [NC]

Порядок разрешить, запретить

Разрешить от всех

Отказаться от env=bad_bot

Оптимизация работы сайта

Ускорение работы с сайта за счет сжатия информации

Мы используем один из трех кодов и проверяем, какой из них работает лучше всего:

1.

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] без gzip

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

mod_gzip_on Да

файл mod_gzip_item_include .js$

файл mod_gzip_item_include .css$

2.

Размер FileETag MTime

Срок действия истекает

Истекает Стандартный «Доступ плюс 1 месяц»

3.

mod_gzip_on Да

mod_gzip_dechunk Да

файл mod_gzip_item_include .(html?|txt|css|js|php|pl)$

обработчик mod_gzip_item_include ^cgi-script$

mod_gzip_item_include mime ^text/.*

mod_gzip_item_include mime ^application/x-javascript.*

mod_gzip_item_exclude mime ^изображение/.*

mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*

Оцените статью
Блог об инвестициях
Adblock
detector