Содержание
Секреты настройки файла .htaccess | Stebnev Studio
3,849 просмотров всего, 3 просмотров сегодня
Оглавление
- Как правильно настроить .htaccess и зачем это нужно
- Прописываем htaccess правильно
- Настройка ЧПУ
- Настройка свойств PHP
- Кэширование данных
- Настройка редирект в htaccess
- Как правильно сделать 301 редирект в htaccess
- Настройка 404 ошибки в htaccess
- Настройка редиректа на https в htaccess
- Управление доступом
- Вместо заключения
Файл .htaccess дает пользователю возможность свободно управлять web-сервером Apache и применять настройки по отношению к директориям и папкам, которые расположены на сервере.
Успешность развития и продвижения интернет-проекта во многом зависит от правильной адекватной работы сервера, на котором расположен сайт. Сейчас большинство использует Apache – в основном, из-за простоты настройки и большого количества предоставляемых возможностей. Настраивать его работу можно как в главном конфигурационном файле, так и с помощью .htaccess. Расположенные на сервере в отдельных папках, они указывают ему, как именно действовать в данном подкаталоге.
Правильная настройка htaccess дает возможность отдельно настроить редиректы на сайте, прописать внутренние изменения url, добавить авторизацию по паролю и др. О том, как это можно сделать, поговорим далее.
Как правильно настроить .htaccess и зачем это нужно
Владельцы сайтов, которые пользуются услугами виртуального хостинга, доступа к httpd.conf чаще всего не имеют. Поэтому единственным способом управления сервером для них будет настройка файла htaccess.
По сути и по структуре, он напоминает httpd.conf. С одним отличием: прописанные в htaccess директивы будут действовать только на тот каталог, в котором расположен этот файл. А также на подчиненные папки и файлы. Но действовать они будут точно так же, как директивы глобального файла конфигурации. То есть, для каждого каталога можно указать отдельный файл . htaccess с нужными настройками, не меняя при этом глобальных настроек сервера и не обращаясь за помощью к хостеру.
Правило: прежде, чем начинать настройку htaccess, в обязательном порядке сделайте копию рабочего файла. Это поможет восстановить данные, если что-то пойдет не так. Неправильные изменения сделают сайт недоступным для пользователей и поисковых роботов. Поэтому очень важно иметь актуальную резервную копию файла конфигурации.
С помощью директив, прописанных в конфигурационном файле, пользователь или владелец сайта получает возможность настройки:
- ЧПУ.
- Опций PHP.
- Кэширования.
- Редиректов.
- Обработки ошибок 404.
- Перенаправления на https
- Управления доступом и пр.
Правильный файл htaccess значительно упрощает и оптимизирует работу с сайтом, дает возможность влиять на выдачу, сформированную сервером.
Прописываем htaccess правильно
Синтаксис директив файла конфигурации достаточно прост.
При написании пары команд и их опций обязательно разделяются пробелом:
Команда параметр1 параметр2 флаги
Помимо команд можно использовать вложенные структуры, необходимые для активации либо проверки доступности отдельных модулей.
Обратите внимание, что несоблюдение синтаксиса может привести к появлению ошибок сервера. Правильный htaccess должен быть написан с соблюдением следующих требований:
- Путь к файлу или директории указывается от корня сервера:
/home/mdhscyhq/public_html/ - Домен прописывается с указанием протокола:
Redirect / https://yoursupersite.ru - Название файла должно содержать «точку»:
.htaccess - Файл должен записываться в формате UNIX.
Путь от корня можно спросить у администратора сервера или посмотреть самостоятельно. Для этого достаточно запустить на сайте функцию PHP–phpinfo и посмотреть значение doc_root.
1.Настройка ЧПУ
ЧПУ, или человеко-понятный урл, положительно (хоть и незначительно) влияет на релевантность страницы сайта запросу пользователя с точки зрения поискового робота. category/([a-zA-Z0-9_-]+)/([0-9]+)\.html$ tovar.html?id=$20
2.Настройка свойств PHP
Даже если хостер закрыл доступ к php.ini, но вам обязательно необходимо изменить некоторые свойства PHP, это можно сделать с помощью файла htaccess.
Пример:
<ifModule mod_php.c> php_value post_max_size 10M php_value upload_max_filesize 32M php_value max_execution_time 200 php_value default_charset utf-8 </ifModule>
Директивы:
upload_max_filesize позволяет выполнить загрузку файлов размером до 32Мб (по умолчанию – до 16Мб).
post_max_size увеличивает размер постинга до 10Мб (стандарт – 2Мб).
max_execution_time позволяет использовать сложные скрипты, на выполнение которых необходимо более чем 30 стандартных секунд.
3.Кэширование данных
В файле htaccess можно выполнить настройку кэширования, если по каким-либо причинам это невозможно организовать с помощью синтаксиса PHP. В таком случае для ускорения загрузки данных с сервера можно применить следующие модули:
- mod_headers — дает возможность устанавливать в заголовке ответа сервера разные правила кэширования для файлов различных типов.
- mod_expires — отвечает за срок «устаревания» файлов, время, по истечении которого, файл будет помещен в кэш браузера.
При схожем смысле модули имеют разный синтаксис. Допускается использование любого из них (выбор зависит от того, какой установлен на сервере).
4.Настройка редирект в htaccess
Настройка файла htaccess позволяет выполнить простую и сложную переадресацию url. То есть, вы можете перенаправить пользователя на другой адрес глобально:
Redirect / http://www.yoursupersite.ru
или при запросе отдельных страниц на сайте:
Redirect / blog http://yoursupersite.ru/blog
Правильный редирект в htaccess имеет следующий синтаксис:
Redirect [status] url_local url_redirect
Существует несколько несложных правил, которые стоит соблюдать при настройке переадресации через htaccess:
- Редиректы страниц в файле нужно располагать от более частных (вверху страницы) к глобальным. То есть сверху вниз.
- Необходимо избегать двух и более последовательных редиректов, т.к. это увеличивает время ответа и негативно оценивается поисковыми роботами.
Как правильно сделать 301 редирект в htaccess
В случае переноса сайта на новый домен или смены CMS возникает необходимость перенаправления пользователя со старых url на новые адреса. Редирект с номером ошибки 301 (Permament Redirect) сообщает роботу о том, что документы и страницы были перемещены на постоянной основе. Это позволяет сохранить позиции сайта в поисковых системах, сохранить ссылочную массу и PageRank.
Настройка 301 редиректа в htaccess может быть выполнена различными способами, в зависимости от предустановленного ПО и поставленных целей.
Самый простой вариант:
Redirect 301 /new-1/ http://yoursupersite.ru/new-2/
Недостаток этого метода состоит в том, что необходимо по отдельности перечислить все адреса, с которых и на которые будет осуществляться перенаправление. Поэтому для более сложных редиректов лучше использовать модуль mod_rewrite, который позволяет выполнить любой тип преобразования url и при этом настроить зависимость преобразования от ряда условий и факторов. (.*)$ http://site.ru/$1 [L,R=301]
5.Настройка 404 ошибки в htaccess
Удалили или перенесли страницу с сайта? Пользователь, перейдя по ссылке в поисковой системе или вводя неправильный url, увидит сообщение об ошибке 404. И, скорее всего, закроет вкладку.
Чтобы этого не произошло, более правильным будет отдельно настроить редирект 404 в htaccess и перенаправить посетителя на главную страницу сайта:
ErrorDocument 404 http://www.yoursupersite.ru/
Однако это не всегда такое решение оправдано. Маркетологи рекомендуют создавать отдельную страницу «Not Found», которая будет работать на увеличение конверсии. Подробнее о дизайне страницы «Ошибка 404» можно почитать здесь. А перенаправить пользователя на нее можно с помощью следующих настроек в htaccess:
ErrorDocument 404http://www.yoursupersite.ru/404.html
Аналогичным образом можно настроить вывод сообщений об ошибках:
ErrorDocument 401 http://www.yoursupersite. ru/401.html ErrorDocument 403 http://www.yoursupersite.ru/403.html ErrorDocument 500 http://www.yoursupersite.ru/500.html
6. Настройка редиректа на https в htaccess
Использование сертификата безопасности SSL и протокола https обеспечивает более безопасное соединение и достаточно высоко ценится поисковыми системами при ранжировании. Чтобы перенаправить всех пользователей сайта на этот протокол и тем самым обеспечить надежность передачи данных, достаточно внести в файл htaccess следующие настройки:
RewriteEngine On RewriteCond %{HTTPS} !on RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
7.Управление доступом
В файле htaccess с помощью специальных директив можно ограничить доступ расположенным в текущей директории файлам и папкам:
deny from all
Владелец или администратор сайта может разрешить доступ пользователям с конкретного IP-адреса. Это выполняется следующим образом
order deny,allow deny from all allow from 192. 168.ХХ.Х
При необходимости, можно ограничить или даже запретить доступ к файлам и папкам каталога по IP. Выполняется это с помощью следующей директивы:
deny from 192.168.ХХ.Х
Вместо заключения
Правильная настройка htaccess обеспечит правильную работу сайта. Однако не стоит забывать о том, что он является только дополнительным конфигурационным файлом, поэтому по возможностям значительно уступает httpd.conf. Но позволяет применять более тонкие настройки к отдельным папкам, расположенным на сервере.
Что такое htaccess? Настройка перенаправлений и управление конфигурацией веб-сервера
2668
How-to | – Читать 17 минут |
Прочитать позже
Анастасия Сотула
Редактор блога Serpstat
Когда вебмастер или SEO-оптимизатор не умеет работать с htaccess, то теряет массу уникальных возможностей. От создания красивых ссылок до быстрого удаления дублей страниц из индексной базы поисковиков.
Если конфигурационный файл интернет-сервера Apache остается пока загадкой и для вас, читайте нашу статью, где мы расскажем все о htaccess, что надо знать для успешного старта изучения настроек веб-сервера.
Содержание
Файл htaccess – что это?
Как создать файл htaccess?
Синтаксис htaccess
htaccess защита сайта
Вывод ошибок htaccess
301 редирект htaccess
Другие htaccess редиректы
Как сделать поддомен через htaccess?
htaccess настройка кэширования
Другие возможности htaccess
Что делать, если не работает htaccess?
FAQ
Заключение
Файл htaccess – что это?
В процессе оптимизации работы сайтов их владельцы рано или поздно сталкиваются с проблемами, которые решаются на уровне сервера. У них обязательно возникают вопросы, что за файл htaccess, и почему он часто упоминается в тематических статьях? Давайте разберемся подробнее.
Официальное описание htaccess гласит, что он предоставляет возможность задавать серверную конфигурацию на уровне папок. У Apache есть файл, где хранятся главные настройки веб-сервера. Указанные там параметры носят глобальный характер, что не всегда удобно. htaccess делает конфигурирование более гибким.
Профессиональная настройка htaccess позволяет изменять работу Apache в отдельно взятых папках. Например, переназначать файловые типы или разграничивать доступ к директориям. Поскольку изменения происходят локально, файл с основными параметрами веб-сервера не затрагивается, в чем явный плюс.
Задаваемые в htaccess правила распространяются на папку, где размещается файл и все директории, расположенные внутри нее. Ситуация меняется после создания htaccess в той или иной поддиректории. Отметим, что локальная конфигурация доступна при условии, что это разрешено сервером. Большинство дешевых хостингов данную функцию поддерживает.
Как создать файл htaccess?
Перед тем как создать файл htaccess, нужно сделать своего рода «болванку». Идеальный вариант — простой текстовый файл. Для его создания нажмите правой кнопкой мыши по свободному пространству какой-либо папки или рабочего стола. Затем выберите «Создать» и в выпадающем списке отметьте «Текстовый документ».
Создание файла .htaccess
Откройте текстовый файл, выберите «Файл» и «Сохранить как». В появившемся окне в поле «Имя файла» скопируйте .htaccess, а «Тип файла» поменяйте на «Все файлы». В конце нажмите «Сохранить». Готово! Будьте внимательны при задании имени файла. Оно должно состоять из точки и htaccess. Никаких пробелов и дополнительных символов.
Сохранение файла htaccess
Будьте внимательны при задании имени файла. Оно должно состоять из точки и htaccess. Никаких пробелов и дополнительных символов.
Проверка названия файла .htaccess
Синтаксис htaccess
Составить правильный htaccess не всегда удается с первого раза даже специалистам. Особенно на крупных проектах. Новичкам же нет смысла глубоко изучать конфигурацию веб-сервера. Начинать стоит с малого — базовых понятий.
Если открыть htaccess «Битрикс», Drupal, Joomla или другой популярной CMS, внутри окажется перечисление команд. В документации они обозначаются как директивы. Каждая из них пишется на отдельной строке.
Когда требуется написать комментарии в htaccess, перед ними ставится знак # (решетка). Начинающиеся с нее строки сервер игнорирует. Удобно, что изменения вступают в силу после сохранения файла. Перезагружать Apache не надо.
На картинке представлен стандартный файл htaccess для CMS WordPress
На изображении пример файла htaccess для CMS Joomla. Точнее, его начало. На момент написания статьи он включал 166 строк. Разработчики постарались максимально доходчиво объяснить, с чем именно предстоит иметь дело конечным пользователям.
Наряду с директивами в htaccess используются переменные и регулярные выражения. Подробно мы их не рассматриваем. Те же «регулярки» — настолько объемная тема, что по ней пишутся книги на сотни страниц. Однако на основных моментах остановимся.
Наиболее распространенные спецсимволы регулярных выражений
Примеры переменных
Официальную документацию по htaccess читайте здесь.
htaccess защита сайта
Надежная защита сайта через htaccess вполне возможна, если хорошо разобраться в особенностях настройки сервера и понять, что и для чего блокировать. Скажем, с помощью прописанных в htaccess правил защищаются файлы, настраиваются права доступа по IP и выставляются пароли на директории. Чтобы приблизительно понять, как это работает, рассмотрим пример.
Options +FollowSymLinks RewriteEngine On RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR] RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) RewriteRule ^(. *)$ index.php [F,L]
Приведенный выше набор директив решает 2 важные задачи — защищает сайт от скрипт-инъекций и изменяет запросы или глобальные переменные. Вначале активируется контроль символических ссылок. Под ними следует понимать спецфайлы, где вместо предназначенных для пользователей данных хранятся пути к файлам, которые открываются при обращении к ссылкам.
Вслед за контролем сим-ссылок запускается механизм перезаписи адресов страниц. Далее блокируются ссылки с тегами <script> и сторонние скрипты для изменения переменных языка программирования PHP GLOBALS и REQUEST. В конце подозрительные запросы перенаправляются на страницу с ошибкой 403. Тем самым затрудняется жизнь злоумышленников, которые пытаются взломать сайт.
Мало что поняли? Не страшно! Даже если поверхностно разбираетесь в правилах htaccess, никто не мешает пользоваться чужими разработками. Вы можете без проблем взять показанный нами набор директив и использовать на сайте. Веб-сервер Apache активно применяется уже десятки лет. Найти готовое решение зачастую не составляет труда. Это экономит время и предотвращает грубые ошибки.
Вывод ошибок htaccess
Временами на сайтах появляются не загружающиеся страницы. При обращении к ним вместо контента пользователи видят белый экран, что говорит о наличии ошибок. Как их посмотреть? Если «движок» сайта написан на PHP, вывод ошибок в htaccess настраивается одной директивой – php_flag_display_errors on. Отключение выполняется тоже элементарно. Достаточно прописать php_flag_display_errors off.
301 редирект htaccess
SEO-оптимизаторы постоянно используют 301 редирект в htaccess. Делается это для повышения эффективности поискового продвижения. В первую очередь путем перенаправлений удаляются ненужные страницы из индекса поисковиков.
Перед тем как прописать 301 редирект в htaccess, оптимизатор анализирует сайт и находит мешающие продвижению странички. Чаще всего они содержат ошибки и дубли контента. Отбор страниц выполняется вручную или автоматически.
На следующем этапе специалист продумывает, как настроить 301 редирект htaccess с максимальной эффективностью. Одно дело, когда удаляются 10-20 страниц, и совсем другое — тысячи. К составлению директив требуются совершенно разные подходы.
В конечном итоге оптимизатор подбирает оптимальный вариант, как сделать 301 редирект через htaccess, и приступает к написанию серверных инструкций. При условии, что они составлены правильно, страницы исчезают из индекса. Происходит это так.
Поисковый робот заходит на страничку для переиндексации. При обращении срабатывает редирект. Поисковик получает сигнал, что страница больше не существует по старому адресу. Значит, ее надо убрать из индексной базы.
Хотите узнать, как с помощью Serpstat оптимизировать сайт?
Нажимайте на космонавта и заказывайте бесплатную персональную демонстрацию сервиса! Наши специалисты вам все расскажут! 😉
Постраничный редирект 301 htaccess
На практике 301 редирект с одной страницы на другую представляется в виде простой инструкции. (.+)$ /index.php/$1 [L,QSA]
htaccess редирект на другой домен
RewriteEngine On RewriteCond %{HTTP_HOST} mysite_01.com RewriteRule (.*) http://mysite_02.com/$1 [R=301,L]
Вебмастера хотят включить 301 переадресацию с сайта на другой домен в htaccess по разным причинам. Одна из самых распространенных — перенос проекта на альтернативное доменное имя. Допустим, с бесплатного на платное.
Составлять htaccess 301 редирект на новый домен надо крайне аккуратно. Малейшая ошибка способна привести к выпадению целых разделов из индекса. Лучше писать правила постепенно и предварительно тестировать на локальном сервере.
Нужен 301 редирект htaccess с одного домена на другой и при наличии 2 или более имен. Предположим, главный сайт имеет 2 адреса — mysite.com и my-site.com. Первый — главный, а второй — вспомогательный. С него и идет перенаправление.
Некоторые вебмастера применяют htaccess перенаправление на другой домен в целях аккумуляции трафика. http://m.mysite.com%{REQUEST_URI} [R,L]
Другие htaccess редиректы
Как сделать поддомен через htaccess?
Поддомены через htaccess не создаются. Зато можно воспользоваться перенаправлением. Правильная настройка редиректа htaccess выглядит следующим образом:
Redirect /category http://category.mysite.com.
Быстрое создание субдоменов поддерживает панель управления любого платного хостинга.
htaccess настройка кэширования
Эффективная настройка кэширования через файл htaccess возможна, если он размещается в корневой папке сайта. Прописанные в нем правила распространяются на директорию и ее подпапки. Глубина вложения поддиректорий значения не имеет.
<IfModule mod_expires.c> ExpiresActive On ExpiresByType image/jpg "access 1 year" ExpiresByType image/jpeg "access 1 year" ExpiresByType image/gif "access 1 year" ExpiresByType image/png "access 1 year" ExpiresByType text/css "access 1 month" ExpiresByType text/html "access 1 month" ExpiresByType application/pdf "access 1 month" ExpiresByType text/x-javascript "access 1 month" ExpiresByType application/x-shockwave-flash "access 1 month" ExpiresByType image/x-icon "access 1 year" ExpiresDefault "access 1 month" </IfModule>
Через htaccess кэш браузера обновляется не только в пределах указанных периодов. /])$ $1/ [L,R=301]
Что делать, если не работает htaccess?
- Сайт на хостинге. Когда появляется 500 ошибка, значит, сервер обрабатывает файл. Сделайте резервную копию htaccess, удалите содержимое и напишите простую директиву. Если оповещение с кодом 500 исчезнет, присутствуют неточности в правилах. Надо найти и устранить. При отсутствии реакции веб-сервера обращайтесь в саппорт. Иначе рискуете безрезультатно потратить время.
- Веб-сайт на локальном сервере. Здесь все гораздо сложнее, потому что за работу веб-сервера отвечаете лично вы. Допустим, директивы написаны правильно и дело не в нарушении синтаксиса. Для начала установите программу с нуля и проверьте, как работает htaccess с настройками по умолчанию. Не помогло? Обратитесь в службу поддержки Apache или создайте тему в профильном сообществе наподобие StackOverflow.
Как подключить htaccess?
Чтобы включить htaccess, откройте файл с настройками веб-сервера Apache и найдите строку AllowOverride None. Замените None на All.
Для чего нужен htaccess файл?
- Авторизация.
- Аутентификация.
- Определение собственных страниц с ошибками.
- Создание красивых адресов.
- Оптимизация кэширования с целью снижения нагрузки на веб-сервер.
- Переопределение главных настроек Apache.
Сколько 301 редиректов можно прописать в htaccess?
Неограниченное количество. Учтите, что не рекомендуется злоупотреблять числом перенаправлений или создавать многоуровневые правила, когда страница А отправляет пользователей на страничку Б, а та на В, откуда на Г и т. д.
Как найти и где находится htaccess?
Обычно файл размещается в корневой папке сайта. Иногда он находится в подпапках.
На каком языке написан htaccess?
Файл не включает программный код, а содержит набор директив для веб-сервера. Синтаксис заимствован из XML. Применяются также регулярные выражения. Пишутся инструкции на английском языке.
Существует ли онлайн-генератор редиректов htaccess?
Да, существуют онлайн-генераторы редиректов htaccess. Функционал подобных онлайн-сервисов значительно отличается. Как вариант, на этом сайте создаются простейшие редиректы между двумя страницами, а этот сервис уже предоставляет больше возможностей.
Заключение
Если перед вами стоит много задач по настройке сервера через htaccess, не пытайтесь быстро решить все. Вначале настройте редиректы. Потом кэширование. На третьем этапе разберитесь со страницами ошибок. Полагаем, общая идея понятна. Планомерное конфигурирование снизит вероятность появления ошибочных правил, что положительно отразится на поисковом продвижении и работе сайта.
Чтобы быть в курсе всех новостей блога Serpstat, подписывайтесь рассылку. А также вступайте в чат любителей Серпстатить и подписывайтесь на наш канал в Telegram.
Сэкономьте время на изучении Serpstat
Хотите получить персональную демонстрацию сервиса, тестовый период или эффективные кейсы использования Serpstat?
Оставьте заявку и мы свяжемся с вами 😉
Оцените статью по 5-бальной шкале
5 из 5 на основе 4 оценок
Нашли ошибку? Выделите её и нажмите Ctrl + Enter, чтобы сообщить нам.
Рекомендуемые статьи
How-to
Анастасия Сотула
Что такое смешанный контент и как устранить его при использовании протокола HTTPS
How-to
Анастасия Сотула
Как внедрить на сайте разметку Twitter Card
How-to
Анастасия Сотула
Как создать статью в Википедии
Кейсы, лайфхаки, исследования и полезные статьи
Не успеваешь следить за новостями? Не беда! Наш любимый редактор подберет материалы, которые точно помогут в работе. Только полезные статьи, реальные кейсы и новости Serpstat раз в неделю. Присоединяйся к уютному комьюнити 🙂
Нажимая кнопку, ты соглашаешься с нашей политикой конфиденциальности.
Поделитесь статьей с вашими друзьями
Вы уверены?
Спасибо, мы сохранили ваши новые настройки рассылок.
Сообщить об ошибке
Отменить
Как настроить и включить htaccess на Apache {с примерами}
Что такое файл htaccess?
Файл .htaccess в Apache — это инструмент, который позволяет выполнять настройки на уровне каталогов и подкаталогов. С использованием . htaccess позволяет настраивать разрешения для веб-сайтов без изменения файлов конфигурации сервера.
Это руководство покажет вам , как настроить и включить htaccess на Apache. Кроме того, в нем рассказывается, как ограничить доступ к определенным локализациям на сервере, управлять IP-адресами и перенаправлять трафик.
Примечание: Если в вашей системе нет Apache, вы можете найти пошаговую инструкцию по установке Apache в Ubuntu.
Необходимые условия
- Работающий веб-сервер Apache
- Доступ к окну терминала/командной строке
- Доступ к учетной записи пользователя с привилегиями sudo
Шаг 1. Включите Apache .htaccess
По умолчанию расширение . Файл htaccess не включен.
1. Откройте файл конфигурации хоста по умолчанию, введя в терминале следующую команду:
sudo nano /etc/apache2/sites-available/default
2. Найдите раздел с пометкой <Каталог /var/www> .
В этом разделе измените запись AllowOverride None
на all:
AllowOverride All
Сохраните файл и выйдите.
3. Далее, перезапустить службу Apache:
sudo systemctl apache2 перезапустить
Шаг 2: создать файл .htaccess
Как и большинство программных пакетов Linux, Apache работает с файлами конфигурации. Файл . htaccess — один из них. Он работает, указывая настройку вместе со значением.
Чтобы создать и открыть файл .htaccess для редактирования, введите:
sudo nano /var/www/my_website.com/.htaccess
Заменить my_website с названием вашего фактического веб-сайта. Если этот файл не существует, ваш текстовый редактор создаст его.
Шаг 3. Ограничьте списки каталогов
На вашем сервере могут быть места, к которым вы хотите ограничить доступ. Вы можете сделать это, создав список имен пользователей и паролей, которым разрешен доступ.
1. Начните с создания нового файла .htpasswd в другом каталоге:
sudo nano /user/safe_location/.htpasswd
Введите имя пользователя и пароль для каждого пользователя, которого вы хотите создать. Убедитесь, что используйте надежные пароли и вводите только одну пару имя пользователя/пароль в каждой строке.
Сохраните файл и выйдите.
2. Затем отредактируйте .htaccess до , чтобы включить аутентификацию :
AuthUserFile /user/safe_location/.htpasswd AuthGroupFile /dev/null AuthName "Пожалуйста, введите пароль" Основной тип авторизации Require valid-user
Замените /user/safe_location/htpasswd на местоположение по вашему выбору. Не храните его в том же каталоге, что и ваш веб-контент, из соображений безопасности.
AuthUserFile
— устанавливает местоположение для вашего файла .htpasswd.
AuthGroupFile
— Мы не используем группу, так что это заполнитель.
AuthName
— Это подсказка пользователю — вы можете перефразировать, если хотите.
AuthType
— Тип используемой аутентификации — не меняйте.
Требовать действительного пользователя
— Позволяет любому авторизованному пользователю войти в систему. Вы можете изменить это на Требовать от пользователя new_user разрешить доступ только пользователю с именем new_user .
Управление IP-адресами
Существует множество способов управления IP-адресами:
- Разрешить только определенные IP-адреса.
- Блокировать определенные IP-адреса.
- Блокировать посетителей по рефереру.
Разрешить IP-адреса
Чтобы разрешить IP-адреса, вы можете изменить поведение, чтобы разрешить несколько назначенных IP-адресов и заблокировать остальные.
Введите команды:
запретить заказ, разрешить разрешить от 192.168.0.54 разрешить из 192.168.0
Блокировать IP-адреса
Чтобы заблокировать IP-адреса в htaccess , введите: разрешить, запретить
.0.54
Если вы опустите последнюю цифру, будут заблокированы все IP-адреса в диапазоне от 0 до 255:
Например: deny from 192.168.0
Примечание: Вы можете сохранить файл .htaccess после каждой из перечисленных ниже операций. Если вы закончили вносить изменения, просто перезагрузите ваш сервис Apache перед тестированием. Также при редактировании файла полезно делать комментарии. Используйте знак #, чтобы пометить строку как комментарий, что позволит вам делать заметки, которые система не будет читать как команды.
Блокировка посетителей по рефереру
Вы можете запретить перенаправление людей с определенного сайта на ваш сервер. Это может быть полезно, если вы хотите изолировать шаблоны трафика. Вы также можете использовать его, если вы получаете избыточный трафик сервера из сомнительного источника.
Откройте файл .htaccess и добавьте следующий блок:
RewriteEngine on # Опции +FollowSymlinks RewriteCond %{HTTP_REFERER} заблокированный домен\.com [NC] RewriteRule .* - [F]
Опция NC
указывает игнорировать верхний или нижний регистр, чтобы правило нельзя было обойти, введя BlockedDomain.com .
Если вы хотите добавить больше доменов, обратите внимание на следующее:
RewriteEngine on # Опции +FollowSymlinks RewriteCond %{HTTP_REFERER} заблокированный домен\. com [NC,OR] RewriteCond %{HTTP_REFERER} заблокированный домен2\.com Правило перезаписи .* - [F]
Флаг ИЛИ
сообщает системе, что вы еще не закончили добавлять заблокированных рефереров. Опустите эту опцию в последней записи.
Перенаправление трафика
Вы можете использовать файл .htaccess для перенаправления трафика.
Откройте файл и введите следующее:
Redirect301/Other_Website.com/index.html/My_Website.com/index.html
Эта команда принимает любой трафик, который ищет Other_Website.com , и перенаправляет его на Мой_Вебсайт.com .
Установить страницу 404
Вы можете использовать файл . htaccess , чтобы указать основные функции в новом месте. Одним из примеров является страница 404 .
1. Откройте файл .htaccess и введите:
ErrorDocument 404 /404.html
Эта строка сообщает системе, что в каталоге контента веб-сайта должен быть файл /404. html в качестве страницы с ошибкой.
2. Создайте страницу 404 с помощью этой команды:
sudo nano cd /var/www/My_Website.com/public.html/404.html
Это должно открыть файл 404.htm l в текстовом редакторе.
3. Затем добавьте следующий код:
<тело> Ошибка 404: страница не найдена тело>
Теперь эту страницу можно настроить так, чтобы отображались сообщения об ошибках любого типа. Вы также можете настроить любые другие страницы ошибок по своему усмотрению. Просто укажите ErrorDocument , например, Error 500 , чем укажите .htaccess на новый файл error.html , который вы создаете.
Заключение
Включение . htaccess может быть невероятно ценным инструментом для управления веб-сервером Apache.
В этом руководстве представлены основные команды и настройки, а также некоторые наиболее вероятные сценарии, с которыми вы можете столкнуться.
Как настроить файл htaccess на Apache |
Linode
&nbsРезультаты соответствия 
 results
Нет результатов
Фильтры
Фильтры (
)
Все
0, ‘текст-белый’: checkbox.checked, ‘текст-серый-400’: !checkbox.checked && checkbox.count === 0 }» style=letter-spacing:.07px x-text=checkbox.title>
Добавить теги
Все
0, ‘текст-белый’: checkbox.checked, ‘текст-серый-400’: !checkbox.checked && checkbox.count === 0 }» style=letter-spacing:.07px x-text=checkbox.title>
Обновлено
, Кристофер Пиччини
Traducciones al Español
Estamos traduciendo nuestros guías y tutoriales al Español. Эс
posible que usted esté viendo una traducción generada
автоматический. Estamos trabajando con traductores profesionales
пункт verificar лас traducciones де нуэстро ситио сети. Эсте проект
es un trabajo en curso.
Создать учетную запись Linode
чтобы попробовать это руководство с кредитом в долларах США.
Этот кредит будет применяться к любым действительным услугам, использованным во время вашего первого
дней.
Что такое файл htaccess?
Файл .htaccess вносит изменения в конфигурацию веб-сервера Apache для каждого каталога. Это позволяет вам настраивать определенные области веб-сайта без необходимости изменять основные файлы конфигурации веб-сервера Apache. В этом руководстве показано, как создать и активировать файл .htaccess. Вы также узнаете, как использовать файл .htaccess для настройки разрешений файловой структуры веб-сайта, перенаправлений и ограничений IP-адресов.
Прежде чем начать
Если вы еще этого не сделали, создайте учетную запись Linode и вычислительный экземпляр. Смотрите наши
Начало работы с Linode и
Инструкции по созданию вычислительного инстанса.Следите за нашими
Руководство по настройке и защите вычислительного экземпляра для обновления вашей системы. Вы также можете установить часовой пояс, настроить имя хоста, создать ограниченную учетную запись пользователя и усилить доступ по SSH.Заполните раздел Apache в
Установите стек ламп, чтобы установить Apache на ваш Linode.
Примечание
В этом руководстве замените каждый экземпляр
testuser
своей пользовательской учетной записью. Замените каждое вхождениеexample.com
IP-адресом или полным доменным именем (FQDN) вашего Linode.
Включить файл Apache .htaccess
Чтобы включить файл .htaccess, необходимо обновить
Virtual Hosts для добавления директивы AllowOverride All
.
Используйте текстовый редактор, чтобы открыть файл конфигурации:
sudo nano /etc/apache2/sites-available/example. com.conf
После блока VirtualHost () добавьте директиву
AllowOverride All
, как показано ниже:
2
3
4
5
6
7.... виртуальный хост> <Каталог /var/www/html/example.com/public_html> Индексы опционов FollowSymLinks Разрешить переопределить все Требовать все предоставленные Каталог>
Сохраните файл, затем перезапустите apache:
sudo service apache2 restart
Создайте файл .htaccess
После включения поддержки файлов .htaccess в файле конфигурации Apache вы можете создать файл .htaccess.
С помощью текстового редактора создайте и откройте файл .htaccess. Вы можете поместить файл в корневой каталог вашего сайта. Если вы следовали инструкциям одного из наших руководств по стеку LAMP, ваша корневая папка находится в папке 9.0053 /var/www/html/example.com/public_html/ . Замените example.com
на доменное имя вашего собственного сайта.
судо нано /var/www/html/example.com/public_html/.htaccess
Отключить списки каталогов в Apache
Apache
Модуль mod_autoindex генерирует список каталогов для любого URL-адреса, который не содержит файл индекса каталога. Как правило, Apache настроен на использование файла с именем index.html
в качестве источника для списка каталогов. Если этот файл отсутствует, а модуль mod_autoindex установлен и включен, Apache автоматически создает список каталогов для данного URL-адреса. Лучшей практикой безопасности является отключение списка каталогов, сгенерированного модулем mod_autoindex. Таким образом, только посетители сайта, знакомые с каталогом и файловой структурой вашего сайта, смогут найти и получить доступ к файлам сайта, на которые вы не предоставляете прямых ссылок.
Один из способов ограничить список каталогов — использовать файл Apache .htaccess. В этом разделе показано, как обновить файл .htaccess, чтобы отключить списки каталогов.
Примечание
Системы CMS, такие как
WordPress создает конфигурации .htaccess по умолчанию. В этом руководстве предполагается, что файл .htaccess не существует. Если вы не создали файл .htaccess, выполните шаги, описанные в
Создайте раздел «Файл .htaccess» в этом руководстве.
С помощью предпочитаемого текстового редактора откройте файл .htaccess и добавьте следующую конфигурацию:
- Файл: /var/www/html/example.com/public_html/.htaccess
1
Параметры - Индексы
Теперь перейдите на свой сайт и просмотрите появившееся сообщение Forbidden . Чтобы получить доступ к различным областям вашего сайта, теперь вам необходимо указать путь к файлу или каталогу.
Ограничение IP-адресов
В этом разделе показано, как ограничить доступ определенных IP-адресов к вашему сайту. Это полезно, если вы хотите заблокировать определенных посетителей от просмотра вашего сайта. Вы также можете настроить это, чтобы запретить определенным IP-адресам доступ к определенным разделам вашего сайта.
Примечание
Подкаталоги наследуют настройки из файла .htaccess родительского каталога. Файл .htaccess родительского каталога может быть переопределен подкаталогом, если он содержит свой собственный отдельный файл .htaccess. В примерах в этом разделе используется файл .htaccess, расположенный в корневом каталоге документов веб-сайта. Если у вас есть несколько файлов .htaccess, вам следует тщательно продумать, в каком файле .htaccess вы должны использовать каждую директиву Apache, которую хотите использовать.
Блокировка IP-адресов с помощью файла htaccess
Создайте или отредактируйте файл .htaccess, расположенный в корне документа вашего веб-сайта:
cd /var/www/html/example.com/public_html/ судо нано . htaccess
Удалите строку
Options -Indexes
из предыдущего раздела (если применимо) и добавьте следующие строки для блокировки целевых IP-адресов:- Файл: /var/www/html/example.com/public_html
1 2 3 4 5 6 7
разрешить, запретить # Отклоняет IP 192.0.2.9 запретить с 192.0.2.9 # Запретить все IP от 192.0.2.0 до 192.0.2.255 Deny from 192.0.2
Разрешить IP-адреса с файлом htaccess
Создайте или отредактируйте файл .htaccess, расположенный в веб-каталоге, к которому вы хотите применить этот параметр.
Добавьте следующие строки, чтобы запретить все IP-адреса, кроме определенного IP-адреса и пула IP-адресов, указанных в команде:
- Файл: /var/www/html/example.com/public_html container) }» x-ref=»container»>
1 2 3 4 5 6 7 8 9 10
запретить заказ, разрешить # Запрещает все IP Запретить от всех # Разрешить IP 192.0.2.9 разрешить от 192.0.2.9 # Разрешить все IP-адреса от 192.0.2.0 до 192.0.2.255 разрешить от 192.0.2
Настроить перенаправления с помощью htaccess
Вы можете перенаправить трафик с помощью файла конфигурации .htaccess. В приведенном ниже примере вы обновляете файл .htaccess для корневого каталога вашего веб-сайта, чтобы перенаправить посетителя на http://example.com/test1/index.html
если они попытаются посетить http://example.com/main.html
.
Примечание
Убедитесь, что на вашем веб-сайте есть целевая страница. В следующих шагах замените каждый экземпляр
main.html
на целевую страницу вашего веб-сайта.
Создайте тестовый html-файл для перенаправления посетителя на
http://example.com/test1/index.html
:mkdir test1 судо касание test1/index.html
91
2
3
4
5
6<тело> Это html-файл в test1. тело>
Откройте файл .htaccess в корневом каталоге вашего проекта. Удалите все существующие конфигурации в этом файле и добавьте следующую строку:
- Файл: /var/www/html/example.com/public_html/.htaccess
1
Перенаправление 301 /main.html /test1/index.html
Первый параметр после команды «Перенаправление» — это код состояния HTTP. Указание кода состояния полезно для информирования браузера о том, что страница была перемещена в новое место. Если оставить этот параметр пустым, по умолчанию используется код 302, указывающий, что перенаправление является временным. Указание 301 дает понять, что страница в запрошенном месте навсегда перемещена в новое место.
Следующий параметр — это Unix-путь к файлу, запрашиваемому в URL-адресе. Этот параметр требует, чтобы это был путь Unix, а не URL-адрес. Путь должен быть расположением файла .htaccess, в котором настроена конфигурация перенаправления. Последний параметр указывает, куда вы хотите перенаправить посетителя. В этом случае трафик перенаправляется на /test1/index.html
; для этого второго параметра допустим путь Unix или URL-адрес HTTP.
- Перейти к
example.com/main.html
в браузере. Вы должны увидеть URL-адрес перенаправления наexample.com/test1/index.html
в адресной строке, и ваш тестовый HTML-файл должен отображаться.
Установите страницу ошибки Apache 404
Когда посетитель пытается получить доступ к несуществующей странице или ресурсу (например, перейдя по неработающей ссылке или введя неверный URL-адрес), сервер отвечает кодом ошибки 404. Важно, чтобы пользователи получали обратную связь, объясняющую ошибку. По умолчанию Apache отображает страницу ошибки в случае ошибки 404. Тем не менее, большинство сайтов предоставляют настраиваемую страницу ошибок. Вы можете использовать настройки .htaccess, чтобы сообщить Apache, какую страницу ошибки вы хотите отображать всякий раз, когда пользователь пытается получить доступ к несуществующей странице.
Приведенная ниже конфигурация перенаправляет все запросы на несуществующие документы на страницу в корневом каталоге проекта с именем
404.html
. Откройте файл.htaccess
и добавьте следующую строку:- Файл: /var/www/html/example.com/public_html/.htaccess
1
ErrorDocument 404 /404.html
Создайте файл
404.html
:- Файл: /var/www/html/example. com/public_html/404.html
1 2 3 4 5 6
<тело> Ошибка 404: страница не найдена тело>
В браузере перейдите на несуществующую страницу, например
www.example.com/doesnotexist.html
. Должно появиться сообщение 404.
Вы можете обратиться к следующим ресурсам для получения дополнительной информации
по теме. Хотя они предоставляются в надежде, что они будут
полезно, обратите внимание, что мы не можем ручаться за точность или своевременность
материалы внешнего размещения.
- Коды ошибок и состояния HTTP
- Документация Apache .htaccess
Первоначально эта страница была опубликована на
веб-сервер
apache
Присоединяйтесь к беседе.