Create htaccess file in php

Создание и настройка .htaccess

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

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

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

Создание и редактирование .htaccess

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

  1. Перейдите в раздел « Файловый менеджер » панели управления.
  2. Выберите пункт меню «Файл» — «Новый файл».
  3. Выберите из списка расширений .htaccess .
  4. Нажмите кнопку «Создать файл».

Возникновение ошибки «Имя уже используется» означает, что данный файл уже создан в текущей директории.

Для редактирования файла в файловом менеджере перейдите в директорию с данным файлом, выделите его кликом левой кнопки мыши и выберите пункт меню «Файл» — «Редактировать».

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

Читайте также:  Javascript сортировка массива дат

Вы также можете редактировать .htaccess во внешних редакторах, но обратите внимание, что текстовые редакторы Windows (например, «Блокнот») при сохранении любых документов с кодировкой UTF-8 добавляют в них метки порядков байтов юникода — BOM-сигнатуры. Файлы с такой сигнатурой некорректно обрабатываются веб-сервером, поэтому мы рекомендуем редактировать .htaccess напрямую в «Файловом менеджере» или через специальный редактор «Notepad++».

Примеры настроек

Перенаправления

Настройка редиректов описана в отдельной статье: Типовые перенаправления .

Параметры PHP

Настройка опций PHP через .htaccess описана в отдельной статье: Настройка параметров PHP .

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

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

Разрешить доступ конкретным IP (для остальных доступ запрещен):

Require ip 1.1.1.1
Require ip 2.2.2.2

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

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


Require all granted
Require not ip 1.1.1.1

При использовании Allow,Deny :

Разрешить доступ всем, кроме конкретного IP:

Order Allow,Deny
Allow from all
Deny from 1.1.1.1

Запретить доступ всем, кроме конкретного IP:

Order Deny,Allow
Deny from all
Allow from 1.1.1.1

Запретить доступ для всех:

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


Require all denied
Require ip 1.1.1.1


Order Deny,Allow
Deny from all
Allow from 1.1.1.1

Защита сайта или директории паролем. Базовая аутентификация

Если требуется защитить сайт или конкретную папку сайта паролем, можно воспользоваться базовой аутентификацией, которая работает на уровне веб-сервера Apache и настраивается также с помощью файла .htaccess .

  1. В первую очередь задайте логин и пароль, которые будут использоваться для входа. Для этого подключитесь к аккаунту по SSH и выполните команду ниже, указав нужные вам значения:
htpasswd -bc ~/.htpasswd логин пароль
  1. После выполнения команды в корневом каталоге вашего аккаунта будет создан файл .htpasswd , содержащий логин и хэш-сумму пароля. Если в дальнейшем вам потребуется изменить указанный пароль, снова используйте команду выше.
  2. Перейдите в директорию, которую необходимо защитить паролем (например, это может быть директория wp-admin ), и создайте в ней файл .htaccess со следующим содержимым, указав вместо u и user первую букву вашего логина и сам логин:
AuthType Basic
AuthName "Authentication Required"
AuthUserFile /home/u/user/.htpasswd
require valid-user

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

Блокировка запросов по User-Agent

Можно ограничить доступ к сайту для определенных User-Agent. Например, при нежелательной активности ботов MJ12bot и SolomonoBot, используйте:

RewriteCond % (SolomonoBot|MJ12Bot)
RewriteRule ^.*$ - [R=404,L]

Ограничения по видам запросов

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

SetEnvIfNoCase User-Agent SolomonoBot bad_bot
SetEnvIfNoCase User-Agent MJ12Bot bad_bot


Order Allow,Deny
Allow from all
Deny from env=bad_bot

Для новых версий Apache, начиная с 2.4, оптимально использовать директивы Require и заключать их в блоки :

SetEnvIfNoCase User-Agent SolomonoBot bad_bot
SetEnvIfNoCase User-Agent MJ12Bot bad_bot



Require all granted
Require not env bad_bot

Индексная страница по умолчанию

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

DirectoryIndex new_index.html

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

DirectoryIndex new_index.html index.html index.php

Собственные страницы ошибок

С помощью директивы ErrorDocument вы можете сообщить веб-серверу, какая страница должна отдаваться клиенту в случае возникновения определенной ошибки (403, 404, 500 и др.). Для этого необходимо указать номер ошибки и адрес нужной страницы:

ErrorDocument 500 http://domain.ru/errors/page500.html

Вы можете хранить файлы этих страниц как в корне сайта, так и в специально созданной папке, например, errors.

Кодировка

Указать кодировку по умолчанию (например, cp1251, utf-8, koi8-r) для всех выдаваемых страниц можно с помощью AddDefaultCharset , например:

При использовании PHP версии 5.6 и выше может потребоваться дополнительно указать:

php_value default_charset cp1251

Отображение листинга (содержимого директории)

Если индексный файл запрашиваемой клиентом директории недоступен, будет выведена ошибка «403 Forbidden». Если вместо этого необходимо отображение содержимого директории, потребуется добавить в .htaccess директиву:

Источник

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

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

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

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

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

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

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

Если это windows-1251:

Далее этот файл надо поместить в корень сайта, там где находится 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-код ссылки для форумов (например, можете поставить её в подписи):

    Комментарии ( 20 ):

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

    Кстати да, и вправду заметно.

    Наверное так было задумано.Здесь каждая страница оформлена таким образом.

    Ну не совсем так: если вы свернете ссылки, расположенные справа от вас(видеокурсы, яндекс-директ и тд), то подобного оформления вы уже не увидите.

    Значит это как-то взаимосвязано.

    Ха, оказывается всё так просто!))) Михаил огромное спасибо за помощь.

    Спасибо Михаил. Отличная статья.

    Наверно не в тему статьи, но больше писать некуда. Как убрать расширение файла из строки? Так что-бы вместо sitename.com/im.php было sitename.com/im ?

    Сделайте директорию /im и поместите в неё index.php. Либо воспользуйтесь htaccess

    А что конкретно нужно вписывать в htaccess для этого?

    Почитайте про ЧПУ-ссылки, Вам примерно это нужно.

    Здраствуйте, Михаил.У меня проблемы с кодировкой на разделе Обратная связь.Когда на почту приходить сообщение, непонятные слова бывает, иероглифы?

    Здравствуйте Абай Калдыбаев. Проверьте кодировку, у Вас где-то несоответствие. Должна быть либо UTF-8, либо win1251, но не то и другое. Если то и другое, то оно и порождает такие иероглифы. Внимательно проверьте.

    Извините за наверное такой глупый вопрос, но как же поместить этот файл в корень? Как вообще что либо поместить в корень?

    И ещё вопрос. Я по своей любопытности зашел в Кодировки->Кодировки->Киррилица->и выбрал Windows-1251. Теперь кваказябры и в самом редакторе) все попытки исправить не увенчались успехом) помогите пожалуйста, а то обучение встало уже на первом уроке)

    Артем, здравствуйте. Корень папки — это сама папка. Имеется ввиду, что не во вложенные папки надо записывать. По-поводу кодировки, если у Вас лично не получается, напишите в службу поддержки.

    здравствуйте! у меня вопрос. в системе mac os x нельзя создать файл имя которого начинается с точки, что сделать .

    Запускаете Terminal, с помощью команды cd добираетесь до нужной папки, в ней пишите: vim .htaccess Редактируете для чего жмете кнопку i , записываете для чего надо сначала нажать Esc, потом Shift + : у появившемся внизу : пишите wq (что означает записать и выйти). Вот вам и файл .htaccess там где надо.

    Михаил как мне сделать такое? чтобы при обращении по адресу www.site.ru/company/contacts запускался скрипт index.php?q=contacts&l=company (без редиректа)

    Ни как не могу разобраться с кодировкой, страницы с кодировкой и .htaccess добавил. Хостинг Bernet.ru Ставлю кодировку windows-1251 все русские слова сразу на сайте показываются по русски. В чём может быть проблема.

    Для добавления комментариев надо войти в систему.
    Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

    Copyright © 2010-2023 Русаков Михаил Юрьевич. Все права защищены.

    Источник

    Оцените статью