» Hardware » Software » Windows » Internet » Humor » Other

Настройка Apache с помощью .htaccess

Argon On-Line » Internet » Webmastering
 

Как известно, самым популярным на сей день веб-сервером является Apache HTTP Server в различных версиях (хотя Microsoft утверждает, что Internet Information Services). Его ставят на свои сервера большинство хостинговых компаний, услуга же «NT-хостинга» (т.е. как раз IIS) стоит обычно дороже. Оно и понятно — и неудобный он для привыкших к Linux админов, и глючный (почему-то червяки плодятся именно под IIS), и поэтому дорогой.

Настраивать Apache можно по-разному. Кому-то хочется, чтобы на его страницы можно было переходить только по ссылкам с титульной, кому-то хочется, чтобы при отсутствии в папке индексного файла выводилось содержимое папки, кому-то хочется сам индексный файл переименовать в default.htm… Нет никаких проблем, если вы один на своем личном сервере — редактируете настройки Apache как вам хочется, и все пучком. А если вы пользуетесь чужим хостингом?

Представьте себе ситуацию, когда администраторы веб сервера мужественно рожают новые настройки по каждой новой заявке, которая противоречит предыдущей. Что получится? Правильно, ничего работать ни у кого не будет. А теперь представьте, что настройки у всех одинаковые, т.е. такие, какие нужны большинству (которое, как это обычно бывает, вовсе даже не большинство, а просто стадо). В обоих случаях нормальному человеку делать будет нечего, как клепать уродские сайты. На помощь человечеству приходит .htaccess — конфигурационный файл Apache HTTP Server С помощью этого чудесного файла можно изменять настройки Apache применительно к конкретным папкам конкретного пользователя. На самом деле далеко не всегда этот файл так называется, и работать он будет тоже далеко не всегда. Все опять зависит от настроек Apache. В файле настройки Apache есть несколько директив, а именно AccessFileName и AllowOverride. Первая задает имя файла настройки (по умолчанию .htaccess), вторая разрешает/запрещает его использование в папке. Чтобы работали настройки .htaccess, обе директивы должны быть настроены соответствующим образом. Кстати, большинство бесплатных хостингов, хотя и держат у себя Apache, использование .htaccess не разрешают, но всё жё такие можно найти. В первую очередь убедитесь, что ваш сервер использование .htaccess разрешает. Для этого можно создать файл .htaccess (он должен лежать в настраиваемой папке, т.е. в корне), состоящий из одной только строки:

ErrorDocument 404 /404.htm

В 404.htm запишите что-нибудь типа

<html>
<head>
<title>Ошибка 404 — не найдено</title>
</head>
<body>Запрашиваемый документ был перемещён или удалён.</body>
</html>

Теперь попробуйте набрать что-то типа http://ваш-сайт.дм/notfound/. Если выдалась страница с надписью об ошибке, значит .htaccess у вас работает. Кстати, вот и первое семейство директив. Вы можете настроить реакцию сервера на любую ошибку, используя конструкцию

ErrorDocument номерошибки /имяфайла.html

Номера ошибок расшифровываются так:

  • 401 — Требуется авторизация (Authorization Required)
  • 403 — Доступ запрещен (Forbidden)
  • 404 — Страница не найдена (Not Found)
  • 500 — Ошибка в скрипте или внутренняя ошибка сервера (Internal Server Error)

Еще одна важная директива позволяет настроить тот самый многострадальный индексный файл. Например, можно изменить index.shtml на home.php:

DirectoryIndex home.php

Следующие директивы указывают, в какую кодировку Apache должен перекодировать файлы, и в какой кодировке вы их на сервер закачиваете. Напоминаю, что кодировка может быть еще, например, koi8-r.

CharsetDefault windows-1251
CharsetSourceEnc windows-1251

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

Options -Indexes

Или, например, злобные хостеры заботится о загрузке процессора своего сервера, и заставляет делать файлам с SSI-директивами расширение shtml… Изменить это легко и просто, добавлением в .htaccess всего одной только строчки:

AddHandler server-parsed .shtml .shtm .htm .html

Теперь, как нетрудно догадаться, все перечисленные расширения будут знаменовать собой файл, содержащий SSI включения. А вот чтобы использовать в .html файлах PHP включения, придется сделать немного хитрее, так как придется учитывать то, что SSI и PHP в одном файле использовать нельзя. Надо писать так:

RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html .phtml

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

<Location /path/to/upload.cgi>
CharsetDisable On
</Location>

Это основные директивы управления сервером с помощью очень полезного .htaccess

http://www.f1user.net/

 
Еще
Оглавление раздела
Содержание / Новости

Карта сайта
О сайте
Ссылки

Форум
Обратная связь
Если ты нашел ошибку, хочешь что-то посоветовать либо поругать меня, не посчитай за труд написать об этом в следующем поле...







К началу страницы© 2002—2008 Argon