![]() |
Ответы на Вопросы |
![]() 2. FAQ по файлу .htaccess В: Веб-сервер Apache (.htaccess, .htpasswd) О: Веб-сервер Apache (.htaccess, .htpasswd) Что такое web-сервер? Когда Вы хотите открыть в своем браузере какой-либо сайт, Вы набираете в адресной строке его адрес. Браузер обращается к серверу и, образно говоря, говорит ему: "Выдай-ка мне вот это сайт!". Web-сервер - это та программа, которая этот запрос принимает и выполняет, отправляя Вам запрошенный сайт. Исторически сложилось так, что самым популярным web-сервером в интернете стал web-сервер Apache. Существует много различных версий этого сервера, переделанных под разные задачи. Мы используем Russian Apache, т.е. Apache, умеющий работать с русскими кодировками. Как можно управлять Apache? Управление Apache осуществляется путем добавления в файл .htaccess специальных директив. По сути дела, инструкций, говорящих web-серверу как поступать в той или иной ситуации. Файл .htaccess - это обычный текстовый файл, который можно либо создать непосредственно на сервере, используя, к примеру, текстовый редактор vi, либо создать у себя на компьютере и закачать на сервер по протоколу FTP. Директивы файла .htaccess действуют для каталога, в котором этот файл лежит, и его подкаталогов, если в них нет своих файлов .htaccess. Директивы в файле .htaccess, лежащем в подкаталоге, замещают (переопределяют) собой аналогичные директивы в вышележащем .htaccess. Т.е. директивы, которые были определены в каталоге и не были переопределены в подкаталоге, продолжают действовать на все нижележащие подкаталоги. Обычно используется один файл .htaccess для всего сайта. В данном случае он размещается в директорию public_html и действует на корневой каталог сайта и все его подкаталоги. Какие директивы можно использовать? На нашем хостинге можно использовать все директивы Apache, применимые к файлу .htaccess. Примеры использования .htaccess приведены в разделе "FAQ по файлу .htaccess" Как можно поставить пароль на директорию? Для того, чтобы при обращении к защищенной директории web-сервер Apache спрашивал пароль, нужно в эту директорию поместить файл .htaccess, в котором прописать следующие директивы: AuthName ProtectedZone Вместо ProtectedZone можно написать все, что угодно. Это название защищенной области, оно будет показываться в браузере при запросе пароля, являясь по сути дела подсказкой пользователю. Если Вы хотите использовать русские буквы или же более одного слова, необходимо использовать кавычки. Пример: AuthName "Введите пароль для входа" AuthType Basic Это метод шифрования пароля. Практически всегда используется именно данный вид шифрования. Пример: AuthType Basic AuthUserFile /полный_путь_к_файлу/.htpasswd Это путь к файлу, в котором будут храниться логины и пароли. Он может иметь практически любое имя и располагаться в любом каталоге, главное, чтобы web-сервер мог его прочитать, что требует установки соответствующих прав доступа к этому файлу (на нашем сервере - 644). Однако, традиционно такие файлы называют .htpasswd. Пример: AuthUserFile /home/test/www/site1/public_html/.htpasswd require valid-user Эта строка говорит о том, что доступ в защищенную директорию будет разрешен всем пользователям, чьи логины и пароли есть в файле .htpasswd. Если нужно дать доступ конкретным пользователям, то тогда указывается require user логины_пользователей_через_пробел. Пример: require user vasya kolya petya Пример: require valid-user Как редактировать файл .htpasswd? Файл паролей .htpasswd - это обычный текстовой файл. Каждый пользователь описан в нем одной строкой вида логин:шифрованый_пароль. Для шифрования паролей используется специальная программа htpasswd. Обратите внимание, в файл нельзя просто вручную записать пароль, пароль обязательно должен быть зашифрован программой htpasswd. Если файл .htpasswd еще не существует, программа htpasswd должна быть запущена с ключом -c: htpasswd -c /полный_путь_к_файлу/.htpasswd логин_пользователя Пример: htpasswd -c /home/test/www/site1/public_html/.htpasswd vasya При этом программа htpasswd создаст файл .htpasswd, запросит пароль для пользователя и создаст запись о пользователе с указанными логином и паролем в этом файле. При добавлении следующих пользователей и изменении паролей уже существующих программа вызывается подобным же образом, но без указания ключа -c. Для удаления пользователя достаточно открыть файл .htpasswd обычным текстовым редактором и удалить строчку с его логином и паролем. Как создать файл .htpasswd если тарифный план не предусматривает доступа по SSH? Если тарифный план не предусматривает доступ по SSH (доступ к командной строке сервера), то для создания файла .htpasswd можно воспользоваться специальной windows-программой. Для этого, нужно скачать дистрибутив, распаковать его и запустить программу passwd.exe. После этого в окне по закладке "Single Password" с помощью кнопки "Browse" задать имя файла (обычно это .htpasswd), а в верхней части окна ввести имя пользователя, пароль и нажать кнопку "Encode and Save". После этого полученный файл необходимо закачать по протоколу FTP в нужную директорию на нашем сервере. Где я могу получить дополнительную информацию? Для получения дополнительной информации о настройках файла .htaccess и о web-сервере Apache в целом Вы можете воспользоваться официальным сайтом данного программного продукта - Apache.org. На сайте дана подробная справочная информация и приведены примеры работы с данным web-сервером. К: FAQ по файлу .htaccess | 04-09-2009 08:33:09 В: FAQ по файлу .htaccess О: данном разделе мы привели несколько примеров директив, которые Вы можете использовать в файле .htaccess для более полной и точной настройки веб-сервера Apache. DirectoryIndex index.php Устанавливает файл для директории, который грузится по умолчанию. Возможно указание нескольких имен через пробел, тогда сервер будет просматривать список слева направо и выдаст по умолчанию первый существующий файл. В случае, если ни одного из файлов, заданных директивой DirectoryIndex, не найдено в текущем каталоге, то web-сервер выдает 403-ю ошибку. Пример: DirectoryIndex index.php index.shtml index.html ErrorDocument 404 /index.html Файл, который сервер выдает в случае, если произошла ошибка с указанным номером. Путь к файлу указывается от корневой директории сайта. Номера некоторых ошибок: 404 - файл не найден; 500 - ошибка скрипта; 403 - доступ запрещен. CharsetRecodeMultipartForms Off Директива выключает перекодировку передаваемых на сервер данных. Используется в тех случаях, когда скрипт производит загрузку на сервер каких-либо файлов, например картинок. Важно чтобы файл .htaccess лежал в той же директории, что и скрипт с формой закачки, либо находился выше его уровнем. Устанавливаем страницу, которая будет открываться в браузере, если не указана конкретная, а только путь к директории. Пропишем в файле .htaccess: DirectoryIndex primer.php При обращении к директории, в которой лежит .htaccess, будет грузиться файл primer.php5 Запрет доступа с помощью .htaccess При желании можем дать запрет на все файлы: deny from all Никто ничего не увидит. обращаем внимание на то, что скриптам, работающим на стороне сервера файлы все равно будут доступны. Разрешить доступ посетителю только с определенного ip: Order Allow,Deny deny from all allow from 192.168.8.1 Всем кроме посетителя с IP 192.168.8.1 доступ запрещен. Также можно указать вместо айпи доменное имя Order Deny,Allow Deny from all Allow from .test.com Только для .test.com будет доступен ваш сайт Перенаправляем посетителей на другой URL (редирект). В .htaccess пишем: Redirect / http://www.test.com Все посетители будут перенаправлены на http://www.test.com Перенаправление посетителей при запросе определенных страниц: Для любителей поиска скриптов с уязвимостями и дыр в защите Добавляем в .htaccess: redirect /scripts http://www.microsoft.com redirect /_vti_bin http://www.microsoft.com redirect /MSADC http://www.microsoft.com redirect /_mem_bin http://www.microsoft.com redirect /msadc http://www.microsoft.com RedirectMatch (.*)cmd.exe$ http://www.microsoft.com$1 Любой запрос с адресом /_vti_bin или /scripts будет автоматически перенаправляться на сайт Microsoft. Редирект посетителей в зависимости от реффера (ссылающейся страницы): RewriteCond %{HTTP_REFERER} http://www.xakers.ru RewriteRule ^/hack.html$ /von.html [L] В данном случае все с форума /www.xakers.ru вместо файла hack.html получат файлик von.html Ставим запрет на отображение содержимого директории при отсутствии индексного файла: Options -Indexes У нас на серверах установлено по умолчанию. Чтобы, наоборот, разрешить веб-серверу отображать содержимое директории при отсутствии индексного файла, надо добавить инструкцию: Options +Indexes Поставить пароль на директорию: Доступ к директории извне контролируется файлами .htaccess и .htpasswd. Более подробно читайте в "Веб-сервер Apache (.htaccess, .htpasswd)". К: FAQ по файлу .htaccess | 04-09-2009 08:33:09 |
Вход в Панель | Регистрация | Калькулятор | Конструктор Тарифов | Ответы на Вопросы | Наши Клиенты | Обратная Связь |