Как в windows создать файл htaccess

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

Файл .htaccess — это конфигурационный файл веб-сервера Apache, с помощью которого можно переопределить некоторые настройки Apache для всего сайта или конкретной папки.

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

Как создать файл .htaccess в Windows

Если в Windows попытаться создать файл с названием .htaccess, результатом будет ошибка «Следует ввести имя файла».

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

Итак, создаём пустой файл .htaccess в папке с сайтом.

Директивы файла .htaccess

Заполняем файл .htaccess:

# Charset
AddDefaultCharset UTF-8

# Errors
php_value error_reporting -1
php_flag display_startup_errors on
php_flag display_errors on

Что означают эти директивы:

  • AddDefaultCharset — устанавливает кодировку сайта, в нашем случае UTF-8.
  • error_reporting — указывает, ошибки каких уровней отлавливать для отображения на сайте и в логах, -1 значит отлавливать все ошибки.
  • display_errors и display_startup_errors — отображать ли ошибки в браузере. on — отображать, off — не отображать.
  • С символа # начинаются комментарии. Они пишутся просто для удобства и не меняют настройки веб-сервера.

  • Для чего нужен файл .htaccess
  • Что можно сделать с помощью .htaccess
  • Как работает .htaccess
  • Как выглядит .htaccess
  • Как создать .htaccess
    • Этап 1. Создайте файл .htaccess: инструкция для Windows
    • Этап 2. Разместите файл на хостинге SpaceWeb
    • Этап 3. Сообщите Apache, что он должен использовать .htaccess
  • Настройка .htaccess
  • Редиректы
    • Переадресация на другой домен
    • Переадресация сайта с HTTP на HTTPS
    • Переадресация поддомена в подкаталог сайта
  • Ограничение или разрешение доступа к сайту с определенных IP-адресов
  • Ограничение доступа к определенным файлам
  • Назначение кодировки
  • Отображение возникающих ошибок PHP на странице
  • Настройка страниц ошибок

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

.htaccess (сокращение от «hypertext access») — это дополнительный конфигурационный файл для Apache. Веб-сервер должен учитывать параметры, указанные в файле, когда обрабатывает запрос.
Обратите внимание, что .htaccess работает только с Apache. У других веб-серверов, например Nginx, есть свои файлы.

Параметры, указанные в .htaccess, не затрагивают настройки главного конфигурационного файла Apache — httpd.conf. Они влияют только на каталоги (и их подкаталоги), в которых этот файл размещен.

Где находится файл .htaccess? Если вам нужно, чтобы настройки .htaccess работали для всего сайта, разместите его в корневом каталоге. Для подкаталогов тоже можно создавать .htaccess-файлы, но учтите, что они будут мешать настройкам файла .htaccess, размещенным на уровне выше. Если вы используете CMS, скорее всего, этот файл был создан программой автоматически и чаще всего его можно найти в папке «public_html» или «www».

Что можно сделать с помощью .htaccess

  1. Настроить переадресацию (редирект):
    • с одного домена на другой,
    • с протокола HTTP на HTTPS.
  2. Ограничить или разрешить доступ к сайту с определенных IP-адресов. Это позволит контролировать доступ, а также отражать хакерские атаки. Например, во время DDoS-атаки можно запретить обработку запросов с определенных IP, что не даст злоумышленнику нарушить работоспособность сервера.
  3. Запретить доступ к конкретным файлам. Если сайт содержит папку с конфиденциальной информацией, ей нужна дополнительная защита. Через .htaccess можно настроить доступ по логину и паролю.
  4. Назначить кодировку по умолчанию. Если на сайте вы увидели не текст, а набор непонятных символов — на сайте указана неправильная кодировка. Самая распространенная кодировка — UTF-8. Указать правильную настройку и починить сайт можно в .htaccess.
  5. Указать, какие страницы должны отображаться у пользователей, при ошибках системы. На сайтах могут быть 400, 403, 404, 502 и другие ошибки. Чтобы немного сгладить неприятное впечатление пользователя от проблемы, нужно создать красочную страницу ошибки и в .htaccess указать, при каких проблемах показывать ту или иную страницу.
  6. Запретить поисковым роботам индексировать страницу. Поисковые роботы изучают все веб-страницы в интернете, если по какой-либо причине вы хотите скрыть страницу от роботов, просто запретите индексацию в файле .htaccess.  
  7. Настроить параметры PHP. Настраивать PHP можно не только в php.ini, но и в .htaccess.

Весь список директив, которые возможно использовать в .htaccess, можно найти в официальной документации PHP и Apache:

  1. Список директив php.ini.
  2. Работа с веб-сервером Apache.

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

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

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

.htaccess  — простой текстовый файл, где в каждой строке указана команда (директива). Пустые строки игнорируются.

Символ «#» в начале строки — комментарий. Система не читает эти строки. Их используют для удобства, чтобы описать смысл конкретной команды или блока.

Как создать .htaccess

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

Если же сайт был написан с нуля или вы случайно удалили существующий файл, нужно:

  1. Создать файл .htaccess вручную на устройстве.
  2. Перенести созданный файл на виртуальный хостинг.

Этап 1. Создайте файл .htaccess: инструкция для Windows

Если вы работаете на Windows, создать .htaccess можно в Блокноте.

  1. Откройте Блокнот.
  2. Нажмите Файл → Сохранить как …:

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

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

Этап 2. Разместите файл на хостинге SpaceWeb

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

  1. Перейдите в раздел Хостинг Файловый менеджер.
  2. Выберите папку, в которую хотите поместить файл .htaccess и нажмите на значок Загрузить файлы:

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

Этап 3. Сообщите Apache, что он должен использовать .htaccess

Чтобы Apache использовал в своей работе файл .htaccess, в httpd.conf нужно добавить строку:

AllowOverride All

Настройка .htaccess

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

Редиректы

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

Все способы редиректа в .htaccess вы можете прочитать в нашей статье Как настроить редирект через .htaccess. Здесь расскажем о двух основных настройках.

Переадресация на другой домен

Укажите в файле .htaccess:

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

Где:

  • olddomain.ru — домен, с которого вы настраиваете перенаправление;
  • newdomain.ru — домен, на который нужно перенаправить пользователей.

Переадресация сайта с HTTP на HTTPS

Обратите внимание, что перенаправление с HTTP на HTTPS нужно делать в файле .htaccess в корневой папке сайта. Введите:

RewriteEngine on
SetEnvIf X-Forwarded-Proto https SERVER_PORT=443
SetEnvIf X-Forwarded-Proto https HTTPS=on
RewriteCond %{HTTP:HTTPS} !=on [NC]
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

Переадресация поддомена в подкаталог сайта

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

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} (www\.)?img\.example\.com$
RewriteCond %{REQUEST_URI} !img/
RewriteRule ^(.*)$ img/$1

Где:
img\.example\.com ― поддомен, с которого должна переадресовываться страница.
img ― подкаталог, в котором находятся файлы поддомена.
Экранирование точки обратной косой чертой (\) в строке 3 необязательно.

Ограничение или разрешение доступа к сайту с определенных IP-адресов

Чтобы ограничить доступ к сайту с определенных IP-адресов в файл .htaccess добавьте:

Order Allow,Deny
Allow from all
Deny from IP

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

Order Deny,Allow
Deny from all
Allow from IP

Вместо IP в третьей строке укажите IP-адрес (или список IP-адресов через пробел), которому хотите разрешить доступ к сайту.
Подробнее об этой директиве можно прочитать в статье Как запретить доступ к сайту через файл .htaccess.

Ограничение доступа к определенным файлам

Для этого добавьте в .htaccess строки:

<Files ПУТЬ_К_ФАЙЛУ>
Order Deny,Allow
Deny from all
Allow from IP
</Files>

Где:

  • ПУТЬ_К_ФАЙЛУ — путь к файлу, к которому нужно ограничить доступ;
  • IP — IP-адрес, для которого вам нужно разрешить доступ.

Назначение кодировки

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

AddDefaultCharset utf-8

Для корректной установки CMS Bitrix
Для корректной установки CMS Bitrix в файле .htaccess необходимо указать следующие строки:

php_value mbstring.internal_encoding UTF-8
php_value mbstring.func_overload 2
php_value max_input_vars 10000
php_value pcre.recursion_limit 1000

Отображение возникающих ошибок PHP на странице

Чтобы контролировать работу сайта, нужно настроить отображение ошибок PHP. Один из способов это сделать ― добавить директиву в .htaccess:

php_flag display_errors on
php_value error_reporting -1

Настройка страниц ошибок

Чтобы настроить отображение страниц ошибок, используйте директиву ErrorDocument. Формула для составления команды:
ErrorDocument + номер ошибки + путь к странице с ошибкой или текстовое сообщение.
Примеры:

ErrorDocument 404 /errors/not_found.php
ErrorDocument 401 /info.html
ErrorDocument 403 «you shall not pass»
ErrorDocument 500 http://example.com/500.php

Как создать файл .htaccess?

Такие сервера как Apache и IIS имеют такую очень полезную возможность как умение задавать определённые настройки сервера для конкретной директории или для определенного сайта. Для задания настроек используют файл .htaccess который хранится в корневой директории сайта. Но есть одно но, файл .htaccess в операционной системе Windows создать не просто, так как при попытке создать файл и переименовать его в .htaccess Windows покажет Вам окно:

Но это не страшно, файл можно создать но немного иначе.

Для того чтобы создать файл .htaccess:

  1. Создайте новый текстовый документ
  2. Откройте его и нажмите Файл → Сохранить как 
  3. Тип файла измените на «Все файлы» и укажите название файла .htaccess
  4. Нажмите кнопку Сохранить.

Создание .htaccess

Вот и все файл создан, открывать его и изменять можно любым текстовым редактором.

Сервер Apache (на котором и находится большинство сайтов) имеет очень полезную возможность задавать определённые настройки сервера для конкретной директории (в частности, для одного сайта). Такой файл называется .htaccess. Однако, создавать его в Windows-системе так просто не получится. В этой статье я расскажу новичкам, как создаётся .htaccess в Windows.

Особенность файла состоит в том, что он не имеет имени, у него лишь расширение. Это норма для Unix-систем, но в Windows это не совсем норма. Итак, порядок действий для создания .htaccess следующий:

  1. Открыть текстовый редактор (Notepad++ или даже обычный Блокнот).
  2. В меню «Файл» выбрать «Сохранить как«.
  3. В выпадающем списке «Тип файла» выбрать «Все файлы«.
  4. Ввести в качестве имени «.htaccess» (разумеется, без кавычек).
  5. Нажать на кнопку «Сохранить«.

Всё, файл .htaccess создан. Далее можно его вновь открывать в любом текстовом редакторе и редактировать.

Для новичков кое-что добавлю. В этом файле надо сразу прописать кодировку сайта. Если это UTF-8:

AddDefaultCharset UTF-8

Если это windows-1251:

AddDefaultCharset CP1251

Далее этот файл надо поместить в корень сайта, там где находится index-файл (как правило, это index.html или index.php). Я об этом написал, поскольку у многих новичков проблемы с кодировкой на сайте именно по этой причине.

  • Создано 18.01.2013 11:20:36

  • Михаил Русаков

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

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

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так:

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

#статьи


  • 0

Помогаем серверу Apache подобрать редиректы и управлять правами пользователей.

Иллюстрация: Оля Ежак для Skillbox Media

Дмитрий Зверев

Любитель научной фантастики и технологического прогресса. Хорошо сочетает в себе заумного технаря и утончённого гуманитария. Пишет про IT и радуется этому.

Веб-сервер — посредник между пользователем и сайтом — или, точнее, данными на нём. Человек отправляет запрос на сервер, чтобы получить содержимое нужной страницы. А сервер обрабатывает эти запросы, находит соответствующие файлы и возвращает их. И этот процесс повторяется до тех пор, пока человек не закроет страницу.

Но иногда данные — например, пароли или доступ к админ-панели — пользователю по запросу отдавать не следует. Поэтому для безопасности на сервере определяют права доступа, которым тот строго следует. Один из способов определить права доступа — создать файл .htaccess. О нём сегодня и поговорим.

Вы узнаете:

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

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

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

Вообще, для глобальных конфигураций у Apache есть специальный файл — httpd.conf. В нём можно установить правила обработки запросов и запуска модулей Apache, определив то, какие они должны принимать параметры и что должны возвращать в ответ. Другими словами, httpd.conf контролирует всё, что происходит с сервером.

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

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

Если в папке уже есть файл .htaccess, но нам нужно создать ещё один во вложенной папке, то приоритет настроек поменяется. Новые конфигурации заменят правила, которые заданы на уровень выше — в первом .htaccess-файле.

Разберём это наглядно:

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

Для каждого уровня — свои настройки из файла .htaccess. Например, в папке Server мы можем указать, что доступ к вложенной папке Frontend есть только у фронтендеров, а к Backend — только у бэкендеров. Теперь в соответствующие папки смогут попасть пользователи только с определёнными логинами. Внутри этих папок можно задать другие локальные настройки. При этом главный файл httpd.conf останется без изменений и сервер точно будет работать.

Чаще всего файл .htaccess используют, если нужно:

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

Поговорим о каждом случае подробнее.

? Редирект. Используется для перенаправления пользователей с одной страницы на другую. Представьте, что у нас есть главная страница сайта — index.html. Но её пришлось переделать, и появилась новая — new_index.html.

Пока страница находится в стадии тестирования, мы хотим показывать её только половине пользователей, чтобы проверить функциональность и их удовлетворённость изменениями. Поэтому нам нужно сделать так, чтобы, когда человек заходит на страницу index.html, его перенаправляло на new_index.html. Указать это можно как раз в файле .htaccess.

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

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

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

Представьте, что пользователь заходит на страницу, которой вообще нет, — например, на free_money.html. Браузер по умолчанию выдаст ему дефолтную страницу с ошибкой 404: «Запрашиваемая страница не найдена». Но мы можем перенастроить это — и указать, чтобы сервер перенаправлял пользователя на главную страницу или на нашу собственную страницу с сообщением об ошибке 404 и полезной информацией.

? Это не все возможности файла .htaccess — их ещё много. Весь список конфигураций можно найти на официальном сайте Apache.

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

Файл обычно находится в папке public или в общей папке сервера
Кадр: «Веб-программист. Дмитрий Ченгаев» / YouTube

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

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

Важно! Не открывайте .htaccess с помощью «Блокнота», если используете Windows. Так в файл запишутся дополнительные символы, которые сервер Apache может обработать неправильно. Лучше всего редактировать файл через консоль или Notepad++.

Дальше в статье мы разберём основные настройки для .htaccess. Будем писать всё с нуля, но если вам нужен «универсальный» файл с конфигурациями, то скопируйте содержимое этого файла в ваш .htaccess.

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

  • главная страница по умолчанию;
  • редиректы;
  • замена протокола HTTP на HTTPS;
  • замена адреса с указателем WWW на адрес без него;
  • ограничение доступов;
  • базовая аутентификация;
  • ограничение запросов;
  • страницы ошибок;
  • кодировка.

Это самые популярные настройки. Можете найти нужные, скопировать, но поменять адрес сайта и названия страниц. Всё должно работать.

Вспомним пример: мы хотим заменить старую главную страницу сайта на новую — new_index.html. Запишем это в .htaccess:

DirectoryIndex new_index.html

Эта команда будет перенаправлять всех пользователей со страницы index.html на страницу new_index.html. Видите, как всё просто.

Ещё можно указать несколько страниц для редиректа — если одна из них не загрузится. Давайте сделаем так: перенаправим пользователя на новую страницу, а если она вдруг не загрузится, то покажем старую главную страницу — index.html:

DirectoryIndex new_index.html index.html

Список можно продолжить любым количеством страниц через пробелы.

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

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

RewriteEngine On
RewriteRule ^profile/(.*)$ my.html [L]

Разберём всё по порядку:

  • RewriteEngine On — это функция, которая включена по умолчанию на большинстве современных веб-серверов, включая Apache. Она позволяет выполнить дополнительные действия при обработке URL-адресов: например, проанализировать эти адреса, чтобы найти нужные символы.
  • RewriteRule — это команда, которая устанавливает перенаправление с URL-адреса profile.html на URL-адрес my.html.

Заметьте, что во второй строке мы использовали регулярные выражения. Если коротко, это набор правил и шаблонов для поиска или замены подстрок в тексте. Нам они нужны, чтобы выделить все URL-адреса, в которых есть слово «profile».

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

Но некоторые пользователи уже могли привыкнуть к старому адресу сайта — поэтому их нужно перенаправить на новый адрес. Для этого пишем такую команду:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Разбираемся в каждой строке:

  • RewriteCond %{HTTPS} off — сначала проверяем, что находится на сайте без HTTPS. Если значение равно off, то выполняется следующая команда.
  • RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] — указываем, что нужно перенаправить все URL-адреса, соответствующие определённому шаблону, на нужный протокол: https://%{HTTP_HOST}%{REQUEST_URI}. Это означает, что если сервер получает запрос на URL-адрес http://example.com/, то он должен перенаправить его на конечную точку https://example.com/.

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

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

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.site.com [NC]
RewriteRule ^(.*)$ http://site.com/$1 [L,R=301,NC]

Эта настройка уберёт WWW из URL-адреса. Если нам зачем-то нужно сделать обратное — добавить WWW в начало адреса, — немного меняем команды:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^site.com [NC]
RewriteRule ^(.*)$ http://www.site.com/$1 [L,R=301,NC]

Для Apache есть две команды ограничения доступа к сайту — Order Allow,Deny и Require. В новых версиях веб-сервера, начиная с 2.4, желательно использовать вторую.

С помощью этих команд можно пускать на сайт людей только с определённым IP-адресом:

Require ip 192.168.1.1
Require ip 192.168.0.2

Чтобы, наоборот, запретить конкретным пользователям посещать сайт, можно заблокировать их IP-адреса:

<RequireAll>
Require all granted
Require not ip 192.168.1.1
</RequireAll>

Выдавать доступ можно не только к сайту целиком, но и к отдельным страницам. Делается это так:

<Files profile.html>
Require all denied
Require ip 192.168.1.1
</Files>

<Files store.html>
Require all granted
Require not ip 192.168.1.1
</Files>

В первом случае мы запретили доступ всем IP-адресам, кроме одного. А во втором случае — разрешили доступ всем, кроме того же IP-адреса.

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

AuthName "Authentication Folder"
AuthUserFile /path/.htpasswd
AuthType Basic
require valid-user

Здесь мы используем базовую SSH-аутентификацию. Для неё нужна защищённая паролем папка Authentication Folder (назвать можно по-другому), а также файл .htpasswd. Дальше следует указать, что доступ есть только у авторизованных пользователей.

Если у вас ещё не настроен SSH, нужно ввести следующую команду в командной строке в корневой папке сервера:

htpasswd -bc ~/.htpasswd логин пароль

Вместо «логин» и «пароль» введите свои логин и пароль. После выполнения команды у вас появится файл .htpasswd.

Мы можем разрешать или запрещать определённые виды HTTP-запросов. Например, иногда нужно запретить пользователям загружать файлы на сервер, но сохранить доступ к их скачиванию.

Рассмотрим на примере запросов GET, POST и HEAD:

<Limit GET POST HEAD>
    Require all granted
</Limit>

Вот какие запросы мы использовали:

  • GET — запрос на получение данных с сервера;
  • POST — запрос на отправку данных на сервер;
  • HEAD — запрос на отправку только заголовков; например, чтобы проверить доступность сервера.

Здесь мы выбираем запросы с помощью команды Limit и разрешаем только их.

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

ErrorDocument 404 /404.html

Всё просто. Главное — чтобы страница находилась в той же папке, где лежит файл .htaccess.

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

AddDefaultCharset utf-8

Здесь мы указали, что кодировка по умолчанию должна быть UTF-8.

Давайте резюмируем всё, что узнали о файле .htaccess и его использовании:

  • Файл нужен, чтобы задавать конфигурацию для веб-серверов Apache.
  • Обычно с помощью .htaccess настраивают редирект, выдают права доступа и задают алгоритм действий для сервера в случае возникновения ошибок.
  • Выглядит он как обычный текстовый файл, но в нём содержится код с уникальным синтаксисом.
  • Чтобы редактировать .htaccess, используйте консоль или редактор Notepad++.

Бесплатный курс по Python ➞

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

Смотреть программу

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Как поменять пароль на удаленном рабочем столе windows 10
  • Windows installer msi для windows 7
  • Как остановить автообновления windows 10
  • Переустановка windows 7 в режиме обновления
  • Служба индексирования windows 10 что это