$67.11


$55.37


$37.07


.htaccess - великий и ушастый защитник всего живого

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

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


Представьте себе ситуацию, когда доблестный админ компании MegaHoster.Network мужественно рожает новые настройки по каждой новой заявке, которая противоречит предыдущей. Что получится? Правильно, ничего работать ни у кого не будет. А теперь представьте, что настройки у всех одинаковые, т.е. такие, какие нужны большинству (которое, как это обычно бывает, вовсе даже не большинство, а просто стадо). В обоих случаях нормальному человеку делать будет нечего, как клепать уродские сайты.


На помощь человечеству приходит .htaccess — защитник всего живого на планете! С помощью этого чудесного файла можно изменять настройки Apache применительно к конкретным папкам конкретного пользователя. На самом деле далеко не всегда этот файл так называется, и работать он будет тоже далеко не всегда. Все опять зависит от настроек апача.

В файле настройки Apache есть несколько замечательных директив, а именно AccessFileName и AllowOverride. Первая задает имя файла настройки (по умолчанию .htaccess), вторая разрешает/запрещает его использование в папке. Чтобы работали настройки .htaccess, обе директивы должны быть настроены соответствующим образом. Только убедившись в том, что это так, можно начинать создавать собственный вариант защитника всего живого. Кстати, большинство бесплатных хостингов, хотя и держат у себя Apache, использование .htaccess не разрешают.

В первую очередь убедитесь, что ваш сервер использование .htaccess разрешает. Для этого можно создать файл .htaccess (он должен лежать в настраиваемой папке, т.е. в корне), состоящий из одной только строки:
ErrorDocument 404 /missing.html

В missing.html запишите что-нибудь типа
Дурак косой  Вы пытаетесь попасть на несуществующую страницу.  

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

Напоминаю, что номера ошибок расшифровываются так:
401 - Требуется авторизация (Authorization Required)
403 - Доступ запрещен (Forbidden)
404 - Страница не найдена (Not Found)
500 - Ошибка в скрипте (Internal Server Error)

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

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

CharsetDefault [b]windows[/b] — 1251 CharsetSourceEnc [b]windows[/b] — 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

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

Более подробная информация о директивах .htaccess уже не относится к разделу FAQ-документов, и может обсуждаться в форуме. Остается добавить, что крайне сложно уломать Notepad, в котором и редактируются файлы, сохранить файл без имени, да еще и с таким нестандартным расширением, как .htaccess. Необходимо сохранить его с типом «Все файлы/All files» и тшательно проследить, что умный Notepad не исправил нашу «ошибку».

 

Интересное

Взаимодействие с чужими окнами
Представьте себе, глупый пользователь сидит как ни в чём небывало с умным видом уже в какой раз пытается составить документ в Microsoft Word'e, но вдруг окно начинает бешено скакать по экрану, в...
Подробнее...
Ставим РНР
Само собой, сначала надо его скачать. Идем на этот раз на официальный сайт http://www.php.net и ищем там раздел downloads.Собственно, искать не приходится, он в самом верху первый. После того, как...
Подробнее...
Переустановка Windows за...
<img src=«http://i-faq.ru/uploads/posts/2007-09/1189770008_1180901603_834d62a53d8f4ee88b7ff5f6dcf97.gif» align=«left» style=«border: none;» alt=«Переустановка Windows за 10 минут» />Даже у...
Подробнее...
Команды и функции языка SQL
Основные команды:select — выбратьinsert — вставитьupdate — обновитьdelete — удалитьСоздания и изменения структуры базы данных и ее составных частей:
Подробнее...
Выбор принтера
Дом печати: правильно выбираем домашний принтер Принтер для дома станет отличным решением, если среди ваших домочадцев есть те, кому необходима постоянная распечатка документов. Какой же домашний...
Подробнее...
Несколько простых способов...
Задумывались ли вы когда-то о том, может ли ваш компьютер быть более быстрым? Мы рассмотрим несколько простых способов увеличить скорость работы, получив максимум производительности от своего...
Подробнее...
Почему не нужно чистить реестр
Давным-давно, в незапамятные времена (еще до изобретения операционной системы Microsoft Windows 95), компьютеры Windows и программы, разработанные для них, включали в свой состав файлы...
Подробнее...
Копирование и удаление...
Попробуем осуществить копирование файла по частям. Узнаем о том, как удалять непустые каталоги с подкаталогами, а так же еще много полезной информации.В самом простом случае вопрос копирования...
Подробнее...
DNS в Windows 2003
DNS — не роскошь, а необходимостьПротокол, определявший порядок обмена информацией в Интернете, описывал в том числе и систему адресации компьютеров, объединенных в эту Сеть. Согласно этой...
Подробнее...
Настраиваем Apache - FAQ...
В: Что такое Apache и зачем он нужен?О: Apache — это web-сервер, один из наиболее распространенных, безопасных и удобных во всем мире. Если вы создаете свой динамичный сайт с использованием языков...
Подробнее...