Configuration file htaccess

Содержание:

Модификация URL в htaccess

Наиболее часто htaccess используется для модификации URL во время выполнения или редиректов. За эту функциональность отвечает модуль mod_rewrite и обычно он активирован в большинстве конфигураций Apache.

Модификация URL в htacces выполняется с помощью трех директив, это RewriteBase, которая указывает префикс адреса, RewriteCond проверяет соответствие, и RewriteRule — изменяет URL в соответствии с регулярным выражением если все правила соответствия подходят.

Сначала нужно включить Mod_Rewrite, на случай если модуль еще не активен:

Укажем, что в качестве префикса для URL нужно использовать корень:

И будем автоматически заменять URL адреса с index.html на index.php, обратите внимание, что исходный URL — это путь к запрашиваемому файлу относительно расположения файла htaccess:

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

  • ^ — начало строки;
  • $ — конец строки;
  • . — любой символ;
  • * — любое количество любых символов;
  • ? — один определенный символ;
  • — последовательность символов, например, от 0 до 9;
  • | — символ или, выбирается или одна группа, или другая;
  • () — иcпользуется для выбора групп символов.

В регулярных выражениях htaccess также можно использовать переменные с данными, полученными из заголовков запроса, например:

  • %{HTTP_USER_AGENT} — поле User-Agent, которое передает браузер пользователя;
  • %{REMOTE_ADDR} — IP адрес пользователя;
  • %{REQUEST_URI} — запрашиваемый URI;
  • %{QUERY_STRING} — параметры запроса после знака ?.

Директива RewriteCond дает еще больше гибкости, вы можете выбрать к каким адресам стоит применять модификацию, например, будем переопределять данные только для версии с www:

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

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

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

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

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

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

<Directory /vverx/>

Options -Indexes

</Directory>

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

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

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

AddDefaultCharset UTF-8

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

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

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

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

<IfModule mod_deflate.c>

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 no-gzip

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

<ifmodule mod_gzip.c>

mod_gzip_on Yes

mod_gzip_item_include file \.js$

mod_gzip_item_include file \.css$ </ifmodule>

</IfModule>

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

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

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

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

<IfModule mod_headers.c>

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

</IfModule>

<IfModule mod_expires.c>

ExpiresActive On ExpiresDefault «now»

</IfModule>

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

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

<ifModule mod_headers.c>

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

<FilesMatch «\.(html|htm)$»>

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

</FilesMatch>

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

<FilesMatch «\.(js|css|txt)$»>

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

</FilesMatch>

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

<FilesMatch «\.(flv|swf|ico|gif|jpg|jpeg|png)$»>

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

</FilesMatch>

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

<FilesMatch «\.(pl|php|cgi|spl|scgi|fcgi)$»>

Header unset Cache-Control

</FilesMatch>

</IfModule>

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

Отсекаем спам

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

# Заменяем yourdomainname на имя вашего домена
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*yourdomainname.* 
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ 
</IfModule>

Настройка доступа htaccess

Довольно часто htaccess используется для управления доступом к папке. Для управления доступом используются три команды:

  • order — порядок;
  • deny — запретить;
  • allow — разрешить.

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

Например, чтобы запретить все необходимо добавить в htaccess:

Затем с помощью директивы allow или deny мы разрешаем или запрещаем доступ к папке с определенных адресов. Например, чтобы запретить все необходимо добавить в htaccess:

Но мы также можем разрешить доступ только с локальной сети:

Если указано deny,allow, то проверка будет выполняться в таком порядке. Сначала все директивы deny, затем все директивы allow, и если ни одно из условий не подошло, то запрос пропускается.При allow,deny такой запрос будет по умолчанию отклонен. Например, предыдущий пример можно написать так:

Для чего нужен файл .htaccess?

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

Файл дополнительной конфигурации .htaccess широко используют для замены стандартных сообщений об ошибках (в частности для обработки ошибки 404), ограничения доступа к файлам и каталогам сайта, настройки переадресации, указания стартовой страницы, определения кодировки файлов, обработки php кода в html-документах и прочего. Далее рассмотрим наиболее значимые из этих возможностей, но сначала разберемся, как создать правильный файл дополнительной конфигурации, где он должен находиться и рассмотрим возможные ошибки при его создании.

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

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

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

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

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

  • image/x-icon;
  • image/jpeg;
  • image/png;
  • image/gif;
  • application/x-shockwave-flash;
  • text/css;
  • text/javascript;
  • application/javascript;
  • application/x-javascript;
  • text/html;
  • application/xhtml+xml;

Чтобы быть уверенным что эта конструкция не вызовет ошибок заключите ее в if:

Зачем нужен .htaccess и где его искать

Файл нужен для более гибкой настройки сервера под задачи оптимизатора. Задавать правила в .htaccess не стоит, если у вас есть доступ к главному конфигурационному файлу сервера .httpd.conf или apache.conf (название зависит от настроек операционной системы). Изменения в нем вступают в силу быстрее, запросы не перегружают сервер. Однако очень часто такого доступа нет, например, в случае с виртуальным хостингом. Тогда приходится прописывать нужные настройки через .htaccess.

Возможности .htaccess для оптимизации сайта:

  • Настройка редиректов для SEO.
  • Обеспечение безопасности ресурса в целом и отдельных разделов.
  • Настройка корректного отображения сайта.
  • Оптимизация скорости загрузки.

Где искать и как редактировать

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

Название файла задается в файле httpd.conf, .htaccess — общепринятое и самое популярное, но не обязательное

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

Некоторые CMS дают возможность редактировать файл через административную панель. В Битриксе его легко можно найти в разделе Контент — Файлы и папки:

В WordPress редактировать .htaccess можно с помощью модулей плагинов Yoast SEO и All in One SEO Pack.

Если файл .htaccess отсутствует, создайте его в текстовом редакторе и разместите в корневой папке сайта или в нужном каталоге (потребуется доступ к хостингу или по ftp).

Как включить файл htaccess и проверить его работу

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

Данная директива размещается исключительно в блоке <Directory>. Отметим, что также по умолчанию принимается значение «All», что, в том числе, сказывается на работе файлов .htaccess. Правда, есть и другой вариант: при значении «None» они окажутся выключены. Но нельзя не отметить, что существуют и многие другие варианты значений, накладывающие определенные ограничения на конфигурацию. Вот их примеры:

  1. AuthConfig – позволяет применять директивы разрешения для защиты каталогов паролями. Другими словами, с этим значением авторизация ведется по логину, паролю, что называется базовой аутентификацией.
  2. FileInfo – разрешает работу директив, задающих типы документа (Headers, Error Documents, Cookies, URL Rewriting , пр).
  3. Indexes – отображает перед посетителем перечень файлов, когда выбранный каталог лишен файла index.html либо аналогичного ему.
  4. Limit – позволяет работать с ключевыми директивами управления доступом (allow, deny, order), сакционирования Limit. Может, отталкиваясь от данных об адресе клиентского устройства, ограничивать доступ к файлам.
  5. Options – дает возможность контролировать перечень функций сервера в каталоге, открытых для использования. Напомним, каталог указывается в < Directory>. Значение выглядит так: ExecCGI, FollowSymLinks, MultiViews, Includes, пр.

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

Файлы .htaccess относятся к разряду полезных функций, ее всегда стараются включать, или делают это, когда заказчик озвучит свое желание. Поэтому если в конфигурации хостинга не прописана поддержка .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

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

FilterDeclare   COMPRESS

FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/html

FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/css

FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/javascript

FilterChain     COMPRESS

FilterProtocol  COMPRESS  DEFLATE change=yes;byteranges=no

Эти сжатия работают на серверах Apache 2.1 и выше, которые используют
модуль mod_filter. Этот модуль
использует алгоритм сжатия DEFLATE,
который основан на указании content-type.
В этом случае мы определяем text/html,
text/css и text/javascript.

В примере выше, мы начинаем с декларации фильтра COMPRESS, используя директиву FilterDeclare. Далее мы перечисляем типы файлов, которые
будут проходить через фильтр. Директива FilterChain,
дает указание серверу строить звено фильтра, основанное на директивах FilterProvider. Директива FilterProtocol позволяет нам определить
опции, применяемые для звена фильтра, когда он будет запущен. В примере мы
используем change=yes (контент должен
быть изменен с помощью фильтра (в этом случае сжат)), и byteranges=no (фильтр должен быть применен для определенных файлов).

В более старых версиях Apache, модуль mod_deflate
также использовался для настройки DEFLATE сжатия. Мы имели меньше возможностей
в настройках, но они были проще:

SetOutputFilter DEFLATE

AddOutputFilterByType DEFLATE text/html text/css text/javascript

В этом случае мы устанавливаем алгоритм сжатия с помощью
директивы SetOutputFilter, и определяем
типы контента, которые мы хотим сжать используя директиву AddOutputFilterByType

Как правило, ваш веб сервер использует один из этих модулей,
в зависимости от версии Apache.
В основном, если вы разрабатываете свой проект, вы знаете, какой код следует
использовать. Но если вы разрабатываете продукт, и не знаете, на каком сервере
он будет использован, вам следует использовать оба кода сразу. Для этого оба
кода необходимо взять в директиву <IfModule
module_name>, это определит, какой из этих модулей используется, и
сервер не возвратит 500 ошибок о попытке настройки модуля, которого не
существует.

Директивы htaccess

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

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

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

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

.htaccess файлы (или «распределенные конфигурационные файлы») позволяют задавать большое количество дополнительных параметров и разрешений для работы веб-сервера в отдельных каталогах (папках), таких как управляемый доступ к каталогам, переназначение типов файлов и т. д, без изменения главного конфигурационного файла.

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

.htaccess переадресация

Блокируем хотлинки с других сайтов

Есть нехорошие товарищи, которые могут использовать картинки с вашего ресурса для использования в своих проектах. Они используют ваши изображения на своих сайтах, другими словами, используют вашу пропускную способность в своих целях, по аналогии с перемещением изображений на поддомен. Будем с ними бороться… Заменим любую картинку, на которую ведет хотлинк с другого сайта, на какое-нибудь предупреждающее изображение или на что хватит фантазии. В коде не забывайте менять адреса на ваши URL.

 Перенаправим RSS фиды WordPress на Feedburner

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

В этом примере идет перенаправление двух потоков: основного RSS и обновление комментариев, если посетитель подписан на обновления.

Изменим страницы ошибок

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

В этом примере идет перенаправление в случае основных ошибок. 404 я тоже добавил, хотя CMS обычно отрабатывают такие моменты, но бывали случаи.

301 и 302 редирект или перенаправление

301 редирект или, так называемое постоянное перенаправление — говорит о том, что страница поменяла адрес или URL и перенаправляет на новую страницу. Если у вас на сайте была проиндексированная ПС страница, а вы поменяли ее адрес — в обязательном порядке сделайте 301 редирект на новую страницу. При 301 редиректе старая страница не индексируется, а вместо нее «подставляется» новая.

Собственно, похожий пример внимательный читатель увидит выше, в случае перенаправления RSS. Да, технология та же. Бывает так, что сайт переезжает на новый домен, нужно сохранить структуру ссылок, а их могут быть сотни и тысячи, на каждую установить перенаправление нереально. Код ниже поможет разобраться с такой ситуацией:

Есть интересная методика «скрытия» внешних ссылок путем 301 редиректа. Допустим, у вас есть «сквозная» ссылка в сайдбаре, которая ведет на ваш профиль в Google+, она внешняя, то есть ведет на внешний ресурс. Для SEO очень хорошо, когда таких ссылок как можно меньше. Можно спрятать их и сделать внутренними.

Технология производства внутренних ссылок из внешних:

  • ставим ссылку на мнимую страницу,
  • настраиваем 301 редирект в htaccess с этой страницы на реальную страницу вашего профиля
  • посетитель ничего не чувствует, ПС довольны

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

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

 Склеиваем сайты с www и без него

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

В этом примере — главное зеркало это адрес без www. Если необходимо сделать наоборот — поменяйте www местами, сверху уберите, внизу добавьте.

Перенаправляем на главную

Перенаправление со страниц site.com/index.php и site.com/index.html на страницу site.com/. За код спасибо Василию Красноженову.

Примеры команд

Теперь я расскажу о наиболее популярных примерах использования команд у этого конфига. Они могут использоваться как для HTML-сайта, так и для проекта на платформе. Каждая команда может сломать ваш проект, поэтому будьте максимально аккуратны при настройке.

Переадресация

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

Вы можете менять значения, которые выделены жирным. Например, вместо 301-го редиректа вы можете использовать другой. Всего есть 4 различных значения.

  1. 301 – документ перемещен навсегда.
  2. 302 – документ перемещен временно.
  3. 303 – смотрите другие документы ресурса.
  4. 410 – документ был безвозвратно удален.

Mod_rewrite – настройка сложных редиректов

Это специальный модуль, который позволяет настраивать переадресацию на какой-то конкретный протокол или домен определенного вида (с www или без него, к примеру). Данный модуль работает только на серверах Apache, поэтому далеко не каждый хостинг будет это поддерживать.

Основное зеркало.

Вместо site.ru должен быть ваш домен. Если вы введете это в конфигурационный документ, ваш сайт будет перенаправлять пользователей с www на обычную версию ресурса. Допустим, человек попытается перейти на www.site.ru/stat1, его сразу же перекинет на site.ru/stat1. Вот так это и работает.

Редирект на https.

Если вы установили SSL-сертификат и хотите, чтобы все страницы проекта открывались через защищенное соединение, вам необходимо просто прописать эти строчки.

Менять в этом коде ничего не нужно, все будет работать именно в таком виде.

Редирект на другой домен.

Если вы решили сменить домен и хотите, чтобы на ваш проект могли переходить по старому адресу, то вы можете просто настроить перенаправление с помощью этих строчек.

Вы можете изменить название сайта, добавив или убрав определенные варианты. Например, вы можете настроить редирект сразу на сайт с https. Также вы можете изменить домен на вариант без www.

Запрет индексирования для определенного поискового робота.

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

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

Общие случаи использования .htaccess

1. Mod_Rewrite

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

2. Аутентификация

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

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

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

Имена и пароли вносятся в файл в виде пары имя_пользователя:зашифрованный_пароль. Например, если пользователь с именем best_user имеет пароль awesome, то такая пара может иметь вид «best_user:VtweQU73iyETM».

Примечание: каждая пара вносится в отдельную строку. Файл .htpasswd может содержать столько строк, сколько необходимо.

Создав .htpasswd, внесите в .htaccess следующий код, чтобы активировать функцию аутентификации:

Строка AuthUserFile определяет путь к файлу .htpasswd.

Строка AuthGroupFile указывает расположение .htgroup. Поскольку на данный момент такого файла не существует, оставьте значение /dev/null.

Строка AuthName содержит текст, который будет отображаться в приглашении ввести пароль (можно ввести абсолютно любой текст).

AuthType относится к типу аутентификации, который будет использоваться для проверки паролей. Пароли проверяются через HTTP, ключевое слово Basic изменять нельзя.

СтрокаRequire valid-user говоритфайлу .htaccess, что в защищенные паролем разделы сайта должны иметь доступ несколько человек. В случае если нужно указать определенного человека, имеющего доступ к закрытым частям сайта, вместо строки Require valid-user используется строка Require user имя_пользователя.

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

Файл .htaccess позволяет создавать для сайта пользовательские страницы ошибок. Некоторые из наиболее распространенных ошибок являются:

  • 400 Bad Request (Неверный запрос)
  • 401 Authorization Required (Требуется авторизация)
  • 403 Forbidden Page (Запрещенная страница)
  • 404 File not Found (Файл не найден)
  • 500 Internal Error (Внутренняя ошибка)

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

Для примера можно создать страницу 404 (попробуйте создать любую страницу ошибки на ваш выбор).

Создав и загрузив страницу ошибки, укажите ее местонахождение в файле .htaccess:

Запомните: Apache ищет страницу 404 в root-каталоге сайта. Поместив новую страницу ошибки 404 в каком-либо подкаталоге, не забудьте добавить этот подкаталог в строку, например:

4. MIME-типы

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

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

5. SSI

Технология Server Side Includes отлично экономит время на веб-сайте. Одним из наиболее распространенных способов использования SSI является обновление большого количества страниц, содержащих определенный блок данных, без необходимости обновлять каждую страницу по отдельности (например, чтобы изменить цитату в нижней части страницы).

Чтобы включить SSI, введите в .htaccess следующий код:

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

Тем не менее, если на сервере находится большое количество страниц .html, поменять расширение которых на .shtml займет много времени, можно использовать другую тактику их проверки на SSI-команды. Для этого используется параметр XBitHack.

Добавление этой строки в файл .htaccess заставляет Apache проверять все html-файлы с соответствующими правами для Server Side Includes.

Чтобы позволить странице использовать  XBitHack, введите:

Запрещение доступа к определенным ресурсам

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

AuthName ";Username and password required";

AuthUserFile /path/to/.htpasswd

Require valid-user

AuthType Basic

Этот файл нужно сохранить и поместить в директорию, которую
мы хотим защитить. Указание AuthName,
выводит сообщение с блоков ввода логина и пароля. AuthUserFile это указание пути к файлу .htpasswd. Указание Require, определяет, что только авторизованные
пользователи имеют доступ к защищенным файлам, в то время как AuthType установлено на Basic.

Для защиты конкретного файла, мы можем поместить следующий
код в директиву <files>, в которой определяются файлы для защиты доступа.

Files ";protectedfile.html";>

AuthName ";Username and password required";

AuthUserFile /path/to/.htpasswd

Require valid-user

AuthType Basic

</Files>

Мы также ссылаемся на файл .htpasswd, который содержит имена пользователей
и зашифрованные пароли доступа к защищенным ресурсам. Этот файл должен быть
сохранен в директории, к которой невозможно добраться через web (то есть, этот файл не должен
находится в директориях сайта). Существует множество сервисов, которые могут
быть использованы для генерации этих файлов автоматическим образом, так как пароль
должен быть закодирован.

Настройки веб-серверов в Панели управления

В настройках базового веб-сервера вы можете изменять все директивы PHP, значение графы Changeable для которых соответствует PHP_INI_PERDIR или PHP_INI_ALL. Эти настройки будут иметь силу на всех сайтах, которые работают на этом веб-сервере.

Управлять абсолютно всеми параметрами PHP вы можете на расширенном веб-сервере, редактируя php.ini через его настройки.

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

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

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

Директория в пути расположения файла должна существовать, а если ее нет — обязательно создайте папку вручную. Файл журнала будет создан при появлении первой ошибки.

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

Вместо 512M укажите желаемый размер ограничения

Обратите внимание, что символ «M» (латинская M) указывается слитно со значением. Уточнить максимальное значение оперативной памяти, доступное по тарифу, можно в

Чтобы увеличить время выполнения скриптов (в секундах), добавьте следующую директиву в .htaccess:

Вместо 300 укажите желаемый размер ограничения

Обратите внимание, что выполнение скрипта более чем в 10 минут (600 секунд) завершится ошибкой с кодом 504

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

Вместо 200M укажите желаемый размер ограничения

Обратите внимание, что символ «M» (заглавная латинская M) указывается слитно со значением

Максимальный размер передаваемых переменных определяется с помощью следующей директивы:

Вместо 15000 укажите необходимый размер ограничения, который требует CMS сайта.

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

Вместо «windows-1251» подставьте подходящую кодировку, например, UTF-8. Проверить, в какой именно кодировке написан сайт, можно через инструменты используемого браузера. Если сайт не обрел корректный вид, обратитесь за помощью в службу технической поддержки.

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

Изменение времени хранения сессий может потребоваться, если вы хотите, чтобы данные об авторизации пользователей на вашем сайте сохранялись дольше.

По умолчанию время хранения сессий — 1440 секунд (24 минуты). Для изменения этого значения добавьте в .htaccess следующие директивы:

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

Альтернативные механизмы хранения и очистки сессий:

  1. Указывать вложенность директорий хранения сессий с помощью аргумента N в session.save_path и очищать старые сессии собственными скриптами ( в документации PHP).
  2. Реализовать собственный механизм хранения сессий (например, в MySQL) и установить его с помощью функции session_set_save_handler.

Заключение

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

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

Он будет просто выдавать ошибку, и для исправления вам придется заходить на хостинг и сбрасывать все изменения этого документа.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector