Настройка Web-сервера Apache с помощью файла .htaccess
На виртуальном хостинге нет доступа к файлам конфигурации 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) — (Профессиональное программирование)
Похожие посты:
- Релевантность (0)
- Добавление к «резиновому» макету нижнего блока (0)
- Кросс-броузерные решения (0)
- Интерпретация сообщений, выводимых инструментом W3C Validator (0)
- Ошибки в программе (0)
- Ошибки времени выполнения (0)
- Поле для ввода многострочного текста. Добавление слов из текстового поля в поле <textarea> (0)