1. Skype консультант
  2. Задать вопрос
  3. Поиск
вместе с вами 18 лет
Как усилить результаты продвижения? где найти точки роста
Многоканальный телефон в Москве +7 (495)229-31-41 Перезвоните мне
.htaccess

.htaccess

.htaccess

.htaccess (англ. hypertext access) — специальный файл дополнительной конфигурации сервиса Apache или идентичных ему серверов. Основной задачей файла является возможность пользователю задавать большое количество дополнительных параметров и разрешений для работы сервиса в отдельных папках и каталогах. Примерами таких параметров могут стать: управления доступом к каталогу, переназначение типов файла. Главной отличительной чертой .htaccess является возможность внесения дополнительных параметров без изменений основного файла конфигурации.

Файл .htacсess очень похож на файл httpd.conf, но имеет одно значительное отличие: действие .htaccess распространяется исключительно на каталог, в котором расположен, и его дочерние папки. Для указания .htaccesss в том или ином каталоге, стоит использовать директиву AllowOverride.

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

Пути к файлам и каталогам должны указываться от корня сервера, например, /var/www/domain.com/htdocs/

Использование файла .htaccess

  • Авторизация и аунтификация.

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

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

    Используется при изменении страниц, на которых отдаются ошибки на стороне сервера, например, распространенная ошибка HTTP 404 Not Found.

  • Изменение URL-адресов.

    Использование файла .htaccess для изменения длинных и сложных URL на короткие и более простые для запоминания.

  • Контроль кеша.

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

  • Изменение опций веб-сервера и его плагинов.

    Некоторые веб-серверы допускают изменение опций через .htaccess.

Директивы .htaccess

Директивы .htaccess служат не только для простых действий на серверах, также они предоставляют пользователю широкий выбор уникальных настроек для сайта. Каждая настройка выполняется с помощью определенной директивы, основными из которых являются:

  • Директивы простого перенаправления (редирект);
  • Директивы сложного перенаправления (mod_rewrite);
  • Индексные страницы;
  • Обработка ошибок;
  • Кодировка;
  • Управление доступом;
  • Паролирование директорий;
  • Опции PHP

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

Директивы простого перенаправления (редирект)

htaccess-3.jpg

Если при запросе нашего сайта, мы хотим переадресовать пользователя на другой URL-адрес, то стоит использовать более сложные директивы .htaccess. Для такой настройки сайта следует внести файл .htaccess в корневой каталог сайта с содержащимся в нем выражением:

Redirect / http://www.example.com# http://www.example.com - URL, на который мы перенаправляем запросы.

Если же мы хотим переадресовать определенные страницы с нашего сайта, то стоит внести следующее содержимое:

Redirect /linux http://www.linux.org Redirect /linux/download.html http://www.linux.org/dist/download_info.html Redirect 301 /kernel http://www.linux.org

Таким образом, при посещении страницы http://mysite.ru/linux будет открываться http://www.linux.org, а при посещении http://mysite.ru/linux/download.html - http://www.linux.org/dist/download_info.html.

Если обратить внимание на последний пример, в котором прописан код 301, то при выводе странице будет указано, что документ перемещен.

Синтаксис команды Redirect :

Redirect [status] URL_LOCAL URL_REDIRECT status : необязательное поле, определяет код возврата. Допустимые значения: * permanent (301 — документ перемещен постоянно) * temp (302 — документ перемещен временно) * seeother (303 — смотрите другой) * gone (410 — убран) URL_LOCAL : локальная часть URL запрашиваемого документа. URL_REDIRECT : URL, куда должен быть выполнен редирект.

Говоря о директиве RedirectMatch,стоит отметить, что она является идентичной директиве Redirect во всем, кроме возможности использования постоянных регулярных выражений, что в некоторых случаях более удобно. Например, при передаче параметров скрипту в теле URL:
RedirectMatch /(.*)/(.*)/index.html$ http://mysite.ru/script.php?par1=$1&par2=$2

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

  • Круглые скобки()используются для выделения групп символов. В дальнейшем к ним можно обращаться по номеру.
  • Символ^обозначает начало строки.
  • Символ$обозначает конец строки.
  • Символ.обозначает любой символ.
  • Символ|обозначает альтернативу. Например, выражения "A|B" означают "A или B".
  • Символ?ставится после символа (группы), который может как присутствовать, так и отсутствовать.
  • Символ*ставится после символа (группы), который может отсутствовать или присутствовать неограниченное число раз подряд.
  • Символ+действует аналогично символу*с той лишь разницей, что предшествующий ему символ обязательно должен присутствовать хотя бы один раз.
  • Квадратные скобки[]используются для перечисления допустимых символов.
  • Квадратные скобки[^]используются для перечисления недоступных символов.
  • Символ\ставится перед спецсимволами, если они нужны в своем первозданном виде.
  • Все, что расположено после символа'#', считается комментарием.

Директивы сложного перенаправления

Еще один модуль, входящий в состав Apache, носит название mod_rewrite. Это невероятно мощный механизм, отвечающий за интеллектуальное преобразование URL. С помощью этого мода возможны все типы преобразования, в зависимости от условий, который задает сам клиент.

Этот модуль идеально подходит для всех типов преобразования URL и разрешает использовать неограниченное количество различных правил и связанных с ними условий, не влияя на скорость преобразования. По сути, mod_rewrite - это синтаксический анализатор, применяющий регулярные выражения или, другими словами, основанный на правилах механизм, преображающий URL-адреса моментально. При этом, во время URL преобразований могут использоваться несколько совершенно разных источников с данными и, в зависимости от типа преобразования, разительно отличаться друг от друга:

  • Переменные сервера;
  • Переменные окружения;
  • Заголовки HTTP;
  • Время;
  • Запросы к внешним базам данных.

Одной из основных директив для mod_rewrite является RewriteCond, которая определяет условие любого правила, использованного пользователем, при котором происходит преобразования. Как правило, после одной или нескольких директив RewriteCond используют директиву RewriteRule. Далее используются правила для нужного преобразования URL. Правильным преобразование можно считать в том случае, когда правило для преобразования URL соответствует условиям основной и дополнительных директив.

Если говорить об "обратной связи", то стоит подразумевать это выражение, как использование частей сравниваемых URL для передачи параметров и построения нового адреса URL.

$N (0 <= N <= 9) предоставляющие доступ к сгруппированным частям (в круглых скобках!) шаблона из соответствующей директивы RewriteRule (единственной, следующей сразу за текущим набором директив RewriteCond).     
%N (1 <= N <= 9) предоставляющие доступ к сгруппированным частям (в круглых скобках!) шаблона из соответствующей директивы RewriteCond в текущем наборе условий. 
%{NAME_OF_VARIABLE}  где NAME_OF_VARIABLE может быть одной из ниже приведенных переменных

Список всех доступных переменных %{NAME_OF_VARIABLE}:

HTTP_USER_AGENT Содержит информацию о типе и версии браузера и операционной системы посетителя. 
HTTP_REFERER  Приводится адрес страницы, с которой посетитель пришёл на данную страницу. 
HTTP_COOKIE  Список COOKIE, передаваемых браузером.
HTTP_FORWARDED  Cодержит IP-адрес прокси-сервера или сервера балансировки нагрузки.  
HTTP_HOST Адрес сервера, например, beget.ru.
HTTP_ACCEPT  Описываются предпочтения клиента относительно типа документа.   
REMOTE_ADDR  IP-адрес посетителя. 
REMOTE_HOST. Адрес посетителя в нормальной форме — например, rt99.net.ru.

REMOTE_IDENT
Имя удаленного пользователя. Имеет формат имя.хост, например, kondr.www.rtt99.net.ru
REMOTE_USER  Тоже, что и REMOTE_IDENT, но содержит только имя. Пример: kondr 
REQUEST_METHOD Позволяет определить тип запроса (GET или POST). Должен обязательно анализироваться, т.к. определяет дальнейший способ обработки информации.  
SCRIPT_FILENAME  Полный путь к веб-странице на сервере. 
PATH_INFO Содержит в себе все, что передавалось в скрипт. 
QUERY_STRING Содержит строчку, переданную в качестве запроса при вызове CGI скрипта.   
AUTH_TYPE  Используется для идентификации пользователя
DOCUMENT_ROOT  Содержит путь к корневой директории сервера.     
SERVER_ADMIN  Почтовый адрес владельца сервера, указанный при установке.   
SERVER_NAME
Адрес сервера, например, kondr.beget.ru
SERVER_ADDR IP-адрес вашего сайта. 
SERVER_PORT Порт, на котором работает Apache.
SERVER_PROTOCOL  Версия HTTP протокола.   
SERVER_SOFTWARE
Название сервера, например, Apache/1.3.2 (Unix)  
TIME_YEAR
TIME_MON
TIME_DAY
TIME_HOUR
TIME_MIN
TIME_SEC
TIME_WDAY
TIME
Переменные, предназначенные для работы со временем в разных форматах.
API_VERSION Это версия API модуля Apache (внутренний интерфейс между сервером и модулем) в текущей сборке сервера, что определено в include/ap_mmn.h.
THE_REQUEST  Полная строка HTTP-запроса, отправленная браузером серверу (т.е., «GET /index.html HTTP/1.1»). Она не включает какие-либо дополнительные заголовки отправляемые браузером.
REQUEST_URI
Ресурс, запрошенный в строке HTTP-запроса. 
REQUEST_FILENAME  Полный путь в файловой системе сервера к файлу или скрипту, соответствующему этому запросу.
IS_SUBREQ
Будет содержать текст «true», если запрос выполняется в текущий момент как подзапрос, «false» в другом случае. Подзапросы могут быть сгенерированы модулями, которым нужно иметь дело с дополнительными файлами или URI для того, чтобы выполнить собственные задачи. 

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

 
  • Вы можете предварять строку шаблона префиксом '!' для указания несоответствия шаблону.
  • ' <Условие ' (лексически меньше)
  • '>Условие' (лексически больше)
  • '=Условие' (лексически равно)
  • '-d' (является ли каталогом)
  • '-f' (является ли обычным файлом)
  • '-s' (является ли обычным файлом с ненулевым размером)
  • '-l' (является ли символической ссылкой)
  • '-F' (проверка существования файла через подзапрос)
  • '-U' (проверка существования URL через подзапрос)

При использовании префикса восклицательный знак ('!'), можно проводить проверки для инвертирования значений.

Директива RewriteEngine созданы для регулирования работы механизма преобразования URL. При установке положения off, модуль полностью прекращает свою работу. По умолчанию, настройки преобразования не наследуются, из чего вытекает, что следует создать директиву RewriteEngine on для каждого хоста, предназначенного для использования mod_rewrite.

Синтаксис RewriteEngine:

RewriteEngine on | off# По умолчанию RewriteEngine off

Для комбинирования условий в правилах стоит использовать OR, а не привычное AND:

RewriteEngine onRewriteCond %{REMOTE_HOST} ^mysubdomain1.* [OR]RewriteCond %{REMOTE_HOST} ^mysubdomain2.* [OR]RewriteCond %{REMOTE_HOST} ^mysubdomain3.*RewriteRule ^(.*)$ ^mysubdomain_public_html/$1RewriteCond %{REMOTE_HOST} ^mysubdomain4.*RewriteRule ^(.*)$ ^mysubdomain4_public_html/$1

Директивы для выдачи главной страницы какого-либо сайта, согласно «User-Agent:» :

RewriteEngine onRewriteCond %{HTTP_USER_AGENT} ^Mozilla.*RewriteRule ^/$ /homepage.max.html [L]RewriteCond %{HTTP_USER_AGENT} ^Lynx.*RewriteRule ^/$ /homepage.min.html [L]RewriteRule ^/$ /homepage.std.html [L]

Директивы для выдачи разных сайтов для разных браузеров, согласно «User-Agent:»:

RewriteEngine onRewriteCond %{HTTP_USER_AGENT} ^Mozilla.*RewriteRule ^(.*)$ /mozilla/$1 [L]RewriteCond %{HTTP_USER_AGENT} ^Lynx.*RewriteRule ^(.*)$ /lynx/$1 [L]RewriteRule ^(.*)$ /default/$1 [L]

Общий синтаксис директивы RewriteRule :

RewriteRule Шаблон Подстановка [flag]# flag - необязательное поле указывающее дополнительные опции.

Также, во время подстановки, можно использовать специальные флаги. Чаще всего это делается путем добавления третьего аргумента директивы RewriteRule.

Список флагов:

'redirect|R [=code]'
(вызывает ридерект)
Префикс в Подстановке вида http://thishost[:thisport]/ (создающий новый URL из какого-либо URI) запускает внешний редирект (перенаправление). Если нет никакого кода, в подстановке ответ будет со HTTP статусом 302 (ВРЕМЕННО ПЕРЕМЕЩЕН). Для остановки процесса преобразования вам также нужно написать флаг 'L'.
'forbidden|F [=code]'
(делает URL запрещенным)
Это делает текущий URL запрещённым, например, клиенту немедленно отправляется ответ с HTTP статусом 403 (ЗАПРЕЩЕНО). Используйте этот флаг в сочетании с соответствующими RewriteConds для блокирования URL по некоторым критериям.
'gone|G [=code]'
(делает URL «мёртвым»)
Этот флаг делает текущий URL «мертвым», т.е., немедленно отправляется HTTP ответ со статусом 410 (GONE). Используйте этот флаг для маркировки «мертвыми» несуществующие более страницы.
'proxy|P [=code]'
(вызвает прокси) 
Этот флаг помечает подстановочную часть как внутренний запрос прокси и немедленно (т.е. процесс преобразования здесь останавливается) пропускает его через прокси-модуль. Используйте этот флаг для того, чтобы добиться более мощной реализации директивы ProxyPass, интегрирующей некоторое содержимое на удаленных серверах в пространство имён локального сервера. 
'last|L [=code]'
(последнее правило) 
Остановить процесс преобразования на этом месте и не применять больше никаких правил преобразований. Используйте этот флаг для того, чтобы не преобразовывать текущий URL другими, следующими за этим, правилами преобразований.   
'next|N [=code]'
(следующий раунд)
Перезапустить процесс преобразований (начав с первого правила). В этом случае URL снова сопоставляется неким условиям, но не оригинальный URL, а URL вышедший из последнего правила преобразования. Используйте этот флаг для перезапуска процесса преобразований, т.е. безусловному переходу на начало цикла.
'chain|C [=code]'
(связь со следующим правилом) 
Этот флаг связывает текущее правило со следующим (которое, в свою очередь, может быть связано со следующим за ним, и т.д.). Это имеет следующий эффект: если есть соответствие правилу, процесс продолжается как обычно, т.е. флаг не производит никакого эффекта. Если правило не соответствует условию, все следующие, связанные правила, пропускаются. 
'type|T=MIME-тип [=code]'
(принудительно установить MIME тип) 
Принудительно установить MIME-тип целевого файла в MIME-тип. К примеру, это можно использовать для имитации mod_alias директивы ScriptAlias, которая принудительно устанавливает для всех файлов внутри отображаемого каталога MIME тип равный «application/x-httpd-cgi».  
'nosubreq|NS [=code]'  Этот флаг дает команду механизму преобразований пропустить директиву, если текущий подзапрос является внутренним подзапросом. К примеру, внутренние подзапросы в Apache происходят тогда, когда mod_include пытается получить информацию о возможных файлах по умолчанию для каталогов (index.xxx). При подзапросах это не всегда полезно и даже иногда вызывает проблему в работе набора директив преобразований. Используйте этот флаг для исключения некоторых правил. 
'nocase|NC [=code]'
(не учитывать регистр) 
Это делает Шаблон нечувствительным к регистру, т.е. нет различий между 'A-Z' и 'a-z', когда Шаблон применяется к текущему URL.
'qsappend|QSA [=code]'   Этот флаг указывает механизму преобразований на добавление, а не замену, строки запроса из URL к существующей, в строке подстановки. Используйте это когда вы хотите добавлять дополнительные данные в строку запроса с помощью директив преобразований.
'noescape|NE [=code]'
(не экранировать URI при выводе) 
Этот флаг не даёт mod_rewrite применять обычные правила экранирования URI к результату преобразования. Обычно, специальные символы (такие как '%', '$', ';', и так далее) будут экранированы их шестнадцатеричными подстановками ('%25', '%24', и '%3B', соответственно); этот флаг не дает это делать.

Также важно помнить:

При отсутствии директивы модуля mod_rewrite в подкаталогах .htaccess, все правила будут наследоваться из родительского каталога;

Если же в файле .htaccess есть наличие директив модуля mod_rewrite не наследуется ничего, а стандартное состояние выставляется таким же, как в корневом файле конфигурации сервера. Поэтому для преобразования конкретного каталога нужно еще раз вставить директиву "RewriteEngine on" в .htaccess.

Если же наследуются правила из верхних каталогов, а нужно добавить новые свойства только определенному, то стоит вводить: "RewriteEngine on" и "RewriteOptions inherit" - последняя директива сообщает серверу о продолжении.

Обработка ошибок

Во время работы сервера иногда возникают стандартные коды возврата, которые чаще всего называют ошибками. Не стоит считать, что ошибки .htaccess - это сбои работы сервера. В отличии от своей в работе, все коды возврата оговорены в стандарте HTTP_RFC2616. Правильным названием кодов возврата в RFC считается "Status Codes", но для удобства их называют просто ошибками.

Сам код возврата - трехзначное число, которое показывает насколько удачно был обработан запрос. Если ваш код возврата начинается на числа 1,2 или 3 - код считается успешно выполненным, все остальные можно отнести к ошибкам.

Список ошибок:

400 - Bad Request

401 - Unauthorized

402 - Payment Required

403 - Forbidden

404 - Not Found

405 - Method Not Allowed

406 - Not Acceptable

407 - Proxy Authentication Required

408 - Request Time-out

409 - Conflict

410 - Gone

411 - Length Required

412 - Precondition Failed

413 - Request Entity Too Large

414 - Request-URI Too Large

415 - Unsupported Media Type

500 - Internal Server Error

501 - Not Implemented

502 - Bad Gateway

503 - Service Unavailable

504 - Gateway Time-out

505 - HTTP Version not supported

Если же ваш код возврата все таки содержит ошибки 4** или 5**, то зайдя на ваш сайт, пользователи будут видеть сообщение от сервера, которое указывает номер ошибки. Такие сообщения, чаще всего, не понятны для простого пользователя. В таком случае, сервис Apache предоставляет альтернативу, в которой вы можете самостоятельно ввести текст, который будет выводится при ошибке. Так вы имеете возможность сообщить посетителю доступным языком о том, что произошло и что делать далее.

Для переопределения страниц с ошибками стоит ввести:

# содержание файла .htaccess:ErrorDocument 404 http://bg10.ru/error/404.htmErrorDocument 403
http://bg10.ru/error/403.htmErrorDocument 400 http://bg10.ru/error/400.htmErrorDocument 500 http://bg10.ru/error/500.htm# в случае ошибки "FORBIDDEN" показывается текстовое сообщение, которое# обязательно должно начинаться с кавычки, кавычка в сообщении не выводится:
ErrorDocument 403 "Sorry can't allow you access today, 403 Status Codes Apache"
ErrorDocument 403 "Sorry can't allow you access today, 403 Status Codes Apache"

Кодировка

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

В HTML для указания кодировки используется тег: <meta http-equiv="content-type" content="text/html; charset=Windows-1251">.

Самые распространенные типы кодировки для русского языка, которые следует передавать в заголовке:

  • Windows-1251 - Кириллица (Windows).
  • KOI8-r - Кириллица (КОИ8-Р)
  • cp866 - Кириллица (DOS).
  • Windows-1252 - Западная Европа (Windows).
  • Windows-1250 - Центральная Европа (Windows).
  • UTF-8 - двух байтовая кодировка

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

AddDefaultCharset WINDOWS-1251

Для перекодировки файла прямо на сервере стоит указать, следующую директиву ( например, если хотим, чтобы все получаемые файлы имели кодировку windows-1251) :

CharsetSourceEnc WINDOWS-1251

Для отмены перекодировки:

CharsetDisable on

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

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

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

Order [Deny,Allow] | [Allow,Deny]# По умолчанию Deny,Allow

Не стоит забывать, что в зависимости от порядка указанных директив меняется последствие и логика работы роботов. Например, при указании условия Dеny,Allow запрещается доступ со всех IP, если нет исключений оговоренных ранее. В случае условия Allow,Deny, разрешается доступ со всех IP. После директивы Order должны быть указаны секции описания запретов или доступов. Если вы хотите разрешить/запретить директорию для всех IP, то стоит использовать ключевое слово all:

Order Allow,DenyAllow from allDeny from 81.222.144.12 81.222.144.20 - пример для разрешения доступа определенному IP;

Order Deny,AllowDeny from allAllow from 81.222.144.12 81.222.144.20- пример для запрета доступа для определенного IP.

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

<Files "passwd.html">  Order Deny,Allow  Deny from all  Allow from 81.222.144.12</Files> - пример, в котором мы запрещаем доступ к папке passwd всем, кроме одного IP.

Для запрета/разрешения доступа к файлам с определенным расширением, стоит прописать:

<Files "\.(key)$">  Order Deny,Allow  Deny from all  Allow from 81.222.144.12</Files> - все файлы с расширением .key будут запрещены/разрешены.

Паролирование директорий

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

AuthName "Protected area, need authorization"AuthType BasicAuthUserFile /home/t/test/.authfilerequire valid-user

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

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

AuthName "SEE TEXT"

Директива AuthType существует для выбора аутентификации следующего типа: Basic или Digest. Рекомендуется использовать именно первый вариант:

AuthType Basic | Digest

Директива AuthUserFile указывает имя файла с паролями для аутентификации пользователей (пароли в этом файле будут шифрованными). Стоит задавать путь к файлу относительно корневой папке веб-сайта.

Директива Require указывает пользователей, которые могут получить доступ :

Require USER_NAME | valid-user

При указании valid-user, вы можете разрешить доступ всем пользователям, перечисленным в файле паролей:

AuthName "Protected area, need authorization"AuthType BasicAuthUserFile /home/t/test/.authfilerequire Alexey Kondr Fenix

Установка пароля на один определенный файл и на группу файлов:

<Files "passwd.html">  AuthName "Protected area, need authorization"  AuthType Basic  AuthUserFile /home/t/test/.authfile  require valid-user</Files>

<Files "\.(key)$"> AuthName "Protected area, need authorization" AuthType Basic AuthUserFile /home/t/test/.authfile require valid-user</Files>

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

Указание опций PHP

Для тонкой настройки php разных директорий следует размещать директивы конфигурации в файле php.ini или в конфигурационных файлах Apache для вашего сайта – .htaccess.

Во время работы с PHP в конфигурационных файлах Apache доступны следующие директивы:

  • php_value
  • php_flag
  • php_admin_value
  • php_admin_flag

Перечень наиболее часто используемых директив:

 mysql.default_host Устанавливает имя хоста базы данных.
Пример: php_value
mysql.default_host localhost

 mysql.default_user Устанавливает имя пользователя базы данных
Пример: php_value
mysql.default_user alexey
 mysql.default_password Устанавливает пароль пользователя базы данных
Пример: php_value
mysql.default_password Hry5Gw2 
 display_errors Разрешает вывод ошибок и предупреждений в
браузер.
Пример: php_flag
display_errors 0 
 display_startup_errors   Включает отображение ошибок, возникающих при
запуске PHP.
Пример: php_flag display_startup_errors
 error_reporting Определяет типы (уровни важности) фиксируемых
ошибок.
Пример: php_value
error_reporting “E_ALL & ~E_NOTICE” 
 auto_prepend_file Определение файла, который будет выводится в
начале каждого php-скрипта. Путь указывается от корня файловой системы сервера.

Пример: php_value
auto_prepend_file /www/server/prepend.php
 auto_append_file  Определение файла, который будет выводится в
конце каждого php-скрипта.
Пример: php_value
auto_append_file /www/server/append.php  
 sendmail_from Устанавливает e-mail отправителя, который
применяется при отправке почтовых сообщений с помощью PHP.
Пример: php_value
sendmail_from root@beget.ru
 user_agent Устанавливает строку User-agent, которая
используется PHP при обращении к удаленным серверам.
Пример: php_value
user_agent “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)”  

Возврат к алфавитному указателю

Остались вопросы?

Заполните форму ниже или просто позвоните нам +7 (495) 229-31-41

наверх