Меню

настройка httpd conf для htaccess

Настройка httpd.conf — файла для .htaccess

Полная поддержка директив .htaccess прилагается.

Пролонгации домена 199-00 руб

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

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

Пример — рассматриваемая часть файла httpd.conf:

Options Indexes FollowSymLinks Includes MultiViews

Параметры у AllowOverride могут быть указаны следующие:

None. Сервер игнорирует – не читает файлы .htaccess в этом каталоге. Если вы не намерены использовать для каталога файлы .htaccess, вам следует явно установить эту опцию, поскольку это повысит производительность сервера.

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

Filelnfo. Разрешает использование в файлах .htaccess директив, управляющих типами документа (AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument, LanguagePriority, и т.д..) Как правило, данная опция разрешена на большинстве веб-серверов.

AuthConfig. Разрешает использование директив разрешения (AuthGroupFile, AuthName, AuthType, AuthUserFile, require..), необходимых для защиты каталогов паролями, т.е. разрешает установку авторизации по имени пользователя и паролю. Данная опция так же разрешена на большинстве серверов.

Limit. Допускает использование основных директив управления доступом (allow, deny и order), директив секционирования Limit, т.е. например ограничивают доступ к файлам в зависимости от адреса клиентского компьютера.

Options. Разрешает использование директивы Options.

Директива Options позволяет управлять тем, какие функции сервера доступны для использования в каталоге, указанном в секции файла access.conf или в файле .htaccess.

Сразу заострим внимание на понятиях Directory и Location. Различие между секциями Directory и Location состоит в том, что первая относится к каталогам на диске, вторая — к виртуальному пути (URL), который браузер запрашивает у Web-сервера. И в той, и в другой могут присутствовать директивы order, allow и deny, которые позволяют ограничить доступ к каталогу или URL с различных машин.

В директиве Options можно использовать следующие параметры:

None. В указанном каталоге не разрешается использование каких-либо функций.

All В указанном каталоге разрешается использование всех возможностей (принимается по умолчанию), т.е. установить сразу все опции — режимы кроме MultiViews.

MultiViews — разрешить поддержку многих языков; по умолчанию она отключена, и включать ее, как правило, не нужно;

FollowSymLinks. Сервер следует символьным ссылкам, имеющимся в указанном каталоге, т.е. — разрешить переходы по символическим ссылкам;

ExecCGI. В указанном каталоге разрешается выполнение сценариев CGI.

Includes. В указанном каталоге разрешено использование серверных включений — SSI (Server Side Includes). Использование серверных включений требует, чтобы сервер производил синтаксический разбор всех HTML-файлов перед отправкой их клиентам. Нечего и говорить, что это крайне нагружает сервер, поэтому мы бы порекомендовали отключить эту опцию. Если вам необходимы серверные включения, разрешите их на уровне отдельных файлов при помощи директивы AddType.

Indexes — допускает использование деректив управления индексацией каталога(AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, и т.д..), например разрешает выдачу листинга каталога , если в нем нет файла index.html (или файла индекса, заданного директивой DirectoryIndex );

IncludesNoExec. Эта директива разрешает использование в указанном каталоге серверных включений, но запрещает запуск из них внешних программ

источник

Настройка Httpd.conf для совместной работы с .htaccess

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

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

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

Пример настройки AllowOverride файла Httpd.conf:
Директива AllowOverride может иметь следующие параметры:

None. Запрет на использования файлов .htaccess в этом каталоге.

Аll. Разрешено переопределение глобальных установок доступа в файлах .htaccess.

Filelnfo. Разрешено использование в файлах .htaccess директив, управляющих типами документа (AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument, LanguagePriority, и другие).

AuthConfig. Разрешает использование директив разрешения (AuthGroupFile, AuthName, AuthType, AuthUserFile, require и другие), необходимых для защиты каталогов паролями, то есть разрешает установку авторизации по имени пользователя и паролю.

Limit. Допускает использование основных директив управления доступом (Allow, Deny и Order), директив секционирования Limit.

Options. Разрешает использование директивы Options.

Директива Options управляет доступом к функциям сервера для использования в каталоге, указанном в секции файла access.conf или в файле .htaccess.

Директива Options имеет следующие параметры:

None. Запрещается в указанном каталоге использование каких-либо функций.

All. Разрешается в указанном каталоге использование всех возможностей, кроме MultiViews.

MultiViews. Разрешить поддержку многих языков.

FollowSymLinks. Разрешить переходы по символическим ссылкам.

ExecCGI. Разрешение выполнения сценариев CGI в указанном каталоге.

Includes. Разрешено использование серверных включений — SSI (Server Side Includes) в указанном каталоге, что подразумевает синтаксический разбор всех HTML-файлов перед отправкой их клиентам.

Indexes. Разрешение использования директив управления индексацией каталога (AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName и другие). Данная опция, например, разрешает выдачу списка файлов каталога, если отсутствует файл индекса, заданного директивой DirectoryIndex).

IncludesNoExec. Разрешается использование серверных включений в указанном каталоге, но запрещается запуск из них внешних программ.

источник

Конфигурационный файл .htaccess

Начнем издалека, чтобы и новичкам был понятен принцип работы описываемого в статье файла. Для функционирования сайта в Интернете нужен не только компьютер и выход к сети, но и установленное на него специальное ПО, которое обеспечивает доступ к данным по протоколам http и https. Таким программным обеспечением и является веб-сервер. Существуют различные типы веб-серверов, но самый распространенный — Apache. Он построен на открытом коде, предоставляется бесплатно, постоянно дорабатывается и улучшается, совместим с многими скриптами и работает почти на всех платформах, включая Windows, Linux, Netware 5.x.

Настраивается Apache через конфигурационные файлы, которые хранятся в текстовом формате. С их помощью можно задать определенные правила действия веб-сервера. Главный конфигурационный файл называется httpd.conf или apache.conf (в зависимости от дистрибутива ОС). Во многих случаях все конфигурации сервера можно указывать именно здесь, и в основном такой способ предпочтительней, потому что:

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

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

Содержание

Что такое .htaccess и для чего он нужен

Файл (или файлы) .htaccess будет задавать правила работы веб-сервера только в каталоге, где он размещен, и его дочерних каталогах, без глобальных изменений работы всего сервера. Возможность использовать .htaccess прописывается директивой (т.е. командой) AllowOverride в главном конфигурационном файле httpd.conf, название которой прямо говорит о том, что настройки внутри .htaccess приоритетны перед настройками в httpd.conf (если иное не ограничено все той же директивой AllowOverride). С помощью этой директивы можно позволить все, а можно — только некоторые действия. Детальную инструкцию по его применению можно найти на сайте Apache.

С ней, при каждом обращении к веб-серверу, Apache будет просматривать все каталоги на наличие .htaccess. Изменения в файле действительны сразу после сохранения — перезагрузка всего веб-сервера не нужна (в отличие от изменений в httpd.conf).

Читайте также:  настройки фильтра угроз huawei

Имя файла .htaccess — общепринятое, но вовсе не обязательное. В httpd.conf можно задать другое имя с помощью директивы AccessFileName, например, так:

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

Как уже говорилось, конфигурационные файлы имеют текстовый формат, и создать .htaccess также можно с помощью текстового редактора (например, Блокнота или NotePad++ в Windows).

Имя файла — .htaccess (с точкой в начале);

формат переноса по словам;

режим ASCII (при загрузке .htaccess на хостинг по FTP-протоколу).

Apache — регистрозависимый веб-сервер, поэтому важно написать название маленькими буквами: .HTaccess и .htaccess — это разные файлы.

В Mac ОS файлы, начинающиеся с точки, невидимы. Поэтому вы можете назвать его иначе и после, переместив по FTP на хостинг, переименовать. Обычно размещают файл в корневой директории веб-сервера (/public_html) либо в корневой директории сайта (/public_html/site.com/).

Синтаксис .htaccess

Синтаксис .htaccess аналогичен синтаксису httpd.conf. Для каждой директивы предполагается отдельная строка. Для своего же удобства вы можете вносить в файл комментарии с помощью знака #, и значение после # будет игнорироваться веб-сервером. Этот трюк можно использовать для отключения любой директивы. Ее не нужно удалять полностью из файла – достаточно просто закомментировать.

Возможности конфигурационного файла огромны. Ниже приведены базовые настройки в .htaccess.

Возможности .htaccess

Контроль доступа

Запрет веб-доступа, кроме IP:

Защита директории с помощью пароля:

Работа с ошибками веб-сервера

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

P.S. Пользователи услуги хостинг сайта от HOSTiQ.ua могут воспользоваться для создания своей страницы функционалом контрольной панели cPanel (в разделе «Расширенный» пункт «Страницы ошибок»).

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

Для создания постоянного перенаправления используется директива 301 редиректа, которая передает весь вес страницы на новый URL (поэтому оно предпочтительней, чем 302 редирект — в целях SEO).

Перенаправление всего сайта на новый домен:

Перенаправление страницы на новую:

Модуль перенаправления mod_rewrite

Незаменимым механизмом для изменения URL-ссылок “на лету” является модуль mod_rewrite. Его полезность, а вместе с тем, сложность заключается в том, что можно использовать несметное количество правил, включающих еще больше переменных.

Для работы модуля, прежде всего, нужны директивы:

RewriteEngine On (включает работу механизма преобразования)

Options FollowSymLinks (условие для работы mod_rewrite).

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

Для дальнейшего ознакомления с модулем рекомендуем обратиться к первоисточнику.

Одной из самых функциональных директив модуля mod_rewrite является RewriteRule. Для того чтобы указать условие, при котором будет работать правило, используется директива RewriteCond. Она (одна или несколько) обязательно прописывается перед RewriteRule.

Перенаправление страницы на новый домен:

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

Перенаправление по протоколу HTTPS (предварительно нужно установить сертификат HTTPS):

Эти строки необходимо разместить в самом верху .htaccess.

Определение кодировки

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

Такое изменение распространяется в пределах действия .htaccess и на все страницы сайта. Можно задать кодировку для определенного типа файла, например windows-1251 для html:

Часто сама страница несет в себе (а именно в заголовке) информацию об используемой кодировке. Нужно проверить, чтобы указанная кодировка в документе и в конфигурационном файле совпадали. Приведенная здесь utf-8 практически всегда требуется при работе популярных cms, так как они рассчитаны на большой круг пользователей по всему миру. Кстати, по умолчанию эта же кодировка настроена и на наших серверах виртуального хостинга.

Другие возможности

– Определить индексный файл сайта:

Читайте также:  программа для настройки жесткого диска windows 10

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

– Полезной директивой является FilesMatch, которая оговаривает пределы действия правила по названию файла, используя регулярные выражения. С ее помощью, например, можно запретить доступ к определенным файлам:

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

Причина в том, что работающий как suPHP веб-сервер не поддерживает php_flag и php_value. Поэтому мы предлагаем использовать сPanel (крайне полезен подраздел “Выбор версии РНР”, для работы с error_log – “Журнал ошибок”) или создать локальный файл php.ini для этой цели. Пару директив мы все-таки привели ниже:

– Для того, чтобы избежать зависания веб-сервера при обработке некорректно написанных скриптов, существует max_execution_time. С ее помощью указывается время в секундах, отведенное на обработку РНР-скрипта. Можно увеличить время ожидания веб-сервера при выполнении скрипта:

– Определить максимальный размер загружаемого файла:

– Вывести ошибки РНР в отдельный файл:

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

Если .htaccess не работает

Проверить работу файла можно, прописав несложные директивы, которые при правильном синтаксисе и верных настройках httpd.conf (как описывалось в начале статьи) должны сработать:

– например, запретив доступ к сайту извне с помощью директивы

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

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

– убедиться, что сервер разрешает использование файла .htaccess: есть запись AllowOverride All (и она не закомментирована с помощью #);

– проверить, что создана запись VirtualHost для домена. В качестве примера:

– название файла дополнительной конфигурации указано как вам нужно. Если это .htaccess, то:

– присутствует хостнейм сервера (указывается при создании URL-перенаправлений) в виде IP-адреса сервера или домена:

Если же причина не в httpd.conf, нужно проверить сам .htaccess на наличие синтаксических ошибок. Можно воспользоваться онлайн-сервисами (например, http://www.htaccesscheck.com/, http://htaccess.madewithlove.be/), или — оригинальным источником, где есть полный перечень директив вместе с синтаксисом.

И еще несколько советов по работе с .htaccess

Крайне желательно перед любым редактированием делать резервную копию файла – чтобы при худшем исходе можно было «откатить» изменения обратно.

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

Хотя изменения и сразу вступают в силу, кэш браузера никто не отменял. Для проверки работы сайта после редактирования .htaccess регулярно пользуйтесь его очисткой или загружайте страницу в обход кэша — через комбинацию клавиш Ctrl + F5 (в Safari: Ctrl + R, в Mac OS: Cmd + R).

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

Полезные ссылки

Лучший источник вдохновения для работы с .htaccess:

Многие инструкции по работе с .htacess, на русском:

Простые генераторы директив для .htaccess:

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

источник