Настройка Web-сервера Apache с помощью файла .htaccess

Опубликовал: Monday, March 12, 2024 в категории HTML | Пока нет комментариев

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

/www/site1/public_html. Действие файла .htaccess распространяется на теку-

щую и все вложенные в нее папки.

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

? ошибки 404 (файл не найден);

? ошибки 403 (нет доступа);

? если используется защита содержимого папки с помощью сервера

Apache, то должна быть обработка ошибки 401 (не авторизован).

ErrorDocument

404

/err404.php

ErrorDocument

403

/err403.php

ErrorDocument

401

/err401.php

После добавления этих директив необходимо поместить файлы err404.php, err403.php и err401.php в корневую папку сайта. Дизайн этих файлов должен соответствовать дизайну всего сайта. Все ссылки в этих файлах должны иметь абсолютный URL-адрес. Это касается и адресов картинок. В против- ном случае получите множество сообщений об ошибке 404.

С помощью директивы DirectoryIndex можно задать название файла, кото- рый будет выдаваться сервером по умолчанию. Возможно указание несколь- ких имен файлов через пробел. В этом случае сервер отобразит первый суще- ствующий файл из списка. Если ни один файл не найден, то сервер выдаст ошибку 403. Практически везде названия таких файлов — index.html и in- dex.php. Если вы используете эти названия, то вставлять директиву не нужно.

DirectoryIndex default.php default.html

Далее следует проверить, что при запросе каталога без индексного файла вы-

водится сообщение об ошибке 403. Создайте папку (например, test) и введите

в адресной строке Web-браузера http://<Имя сайта>/test/. Если в результате получили страницу err403.php, то все нормально. Если получили листинг ка- талога, то необходимо добавить следующую директиву:

Options -Indexes

После этого нужно получить информацию о настройках интерпретатора PHP.

Для этого создаем файл (например, test.php) и добавляем следующий код:

<?php phpinfo();

?>

Загружаем его на сервер и запускаем в Web-браузере. Функция phpinfo() очень информативна и позволяет получить сведения о локальных и глобаль- ных настройках интерпретатора. По умолчанию на сервере используется PHP версии 5.2.8.

Для изменения директив PHP из файла .htaccess используются 2 директивы — php_value и php_flag. Директива php_flag служит для установки логических значений директив, а php_value — для строковых и числовых значений.

php_value <Директива> <Значение>

php_flag <Директива> On | Off

Прежде всего, следует проверить значения директив magic_quotes_gpc и magic_quotes_runtime. "Магические кавычки" обязательно должны быть выключены (Off), так как от них больше вреда, чем пользы. При включенной директиве magic_quotes_gpc интерпретатор расплодит защитные слэши. Лучше заботиться об этом самим. Для отключения необходимо в файл

.htaccess добавить следующие директивы:

php_flag magic_quotes_gpc Off php_flag magic_quotes_runtime Off

Из соображений безопасности нужно выключить директиву

register_globals:

php_flag register_globals Off

В скриптах для получения данных формы следует использовать супергло-

бальные массивы $_GET и $_POST, например:

if (isset($_POST[‘var’])) $var = $_POST[‘var’];

else $var = ”;

Отключить поддержку массивов $_POST, $_GET, $_SERVER в файле конфигура- ции нельзя, в отличие от коротких имен и длинных имен суперглобальных массивов ($HTTP_*_VARS).

Все ошибки в ваших сценариях не должны выводиться в окно Web-браузера. В случае ошибки пользователь должен увидеть пустой экран, а сообщение об ошибке должно быть записано в журнал регистрации ошибок. Директива display_errors должна иметь значение Off, а директива log_errors — On. Если это не так, то необходимо добавить следующие строчки:

php_flag display_errors Off php_flag log_errors On

Для подключаемых файлов следует создать папку и прописать к ней путь.

Просто добавим новый путь к уже существующему:

php_value include_path

".:/usr/local/php5/share/pear:/home/<Логин>/include/"

Не забудьте заменить <Логин> на ваш логин и создать папку include в той папке, которая первой доступна по FTP.

В НИМ АНИЕ !

В качестве разделителя каталогов в ОС UNIX используется двоеточие, а не точка с запятой, как в Windows.

В файле .htaccess можно использовать и другие директивы. Большинство ди- ректив мы рассматривали в главе 4. Например, можно сделать так, чтобы сценарии, написанные на PHP, обрабатывались в файлах с расширением html. Для этого в файл .htaccess достаточно добавить две строчки:

RemoveHandler .html

AddType application/x-httpd-php .html

Источник: Прохоренок Н. А. HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера. — 3-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2010. — 912 с.: ил. + Видеокурс (на CD-ROM) — (Профессиональное программирование)

Похожие посты:

Комментировать

Your email address will not be published. Required fields are marked *