 |
| Сотрудник Уфа-Хост |
Зарегистрирован: 20 мар 2008, 14:27 Сообщений: 30
|
Файлы конфигурации .htaccess - мощный и гибкий инструмент для настройки и оптимизации работы Ваших скриптов, организации редиректов и тп. В этом топике мы опишем основные особенности, принцип работы и базовые наиболее часто используемые директивы .htaccess. Общие сведения.htaccess - служебный файл, используется для децентрализованного управления конфигурацией веб сервера Apache. Настройки .htaccess распространяются на папку в которой находится конфигурационный файл и на все вложенные в нее папки если в них не задан собственный .htaccess. Пример: .htaccess расположенный в папке public_html задаёт настройки для всего сайта, файл .htaccess в любой папке задаёт настройки для этой и вложенных в нее папок. Базовые возможности .htaccess:- Определение индексного файла.
Для определения индексного файла воспользуйтесь директивой DirectoryIndex
Код: DirectoryIndex index.html index.shtml index.cgi index.php index.html index.shtml index.cgi index.php - список имен индексных файлов, при нахождении в папке нескольких файлов их этого списка индексным будет считатся тот, который находится ближе к началу списка.
- Запрет листинга каталога при отсутствии индексного файла.
Запрет листинга каталога (при отсутствии индексного файла, по умолчанию листинг отображается):
Код: Options -Indexes
Для отображения листинга каталога:
Код: Options Indexes
Для запрета не отображения некоторых файлов в листинге каталога:
Код: IndexIgnore *.php* *.pl
- Паролирование директории, аутентификация (htpasswd).
Для паролирования директории добавьте в соответствующий .htaccess следующие строки:
Код: AuthName "Access denied. Authorisation needed." AuthType Basic AuthUserFile /home/www/users/ufa/passw/.htpasswd Require valid-user
AuthName - сообщение выводящееся в окне авторизации, может содержать произвольные латинские буквы, цифры. AuthType - тип авторизации, может принимать значения Basic и Digest, использование значения Digest не рекомендуется, т.к. он не поддерживается некоторыми броузерами. AuthUserFile - указывает расположение файла с парами логин - пароль для аутентификации. Путь указывается относительно корня веб-сервера. Избегайте расположения файла паролей в публичной доступной пользователям папке. Файл паролей можно создать с помощью программы htpasswd http://www.ufa-host.ru/files/passcr.zip Require - определяет пользователей, которые могут получить доступ. При указании valid-user возможность доступа получают все пользователи имеющиеся в файле паролей. Конструкция типа:
Код: Require Root User1 User2
Позволяет получить доступ только пользователям с логинами Root, User1, User2. Паролирование доступа к отдельным типам файлов:
Код: <FilesMatch "\.rar$"> AuthName "Only valid users can download .rar files." AuthType Basic AuthUserFile /home/www/users/ufa/passw/.htpasswd Require valid-user </ FilesMatch >
Паролирование доступа к одному конкретному файлу:
Код: <Files "secret.rar"> AuthName "Access restricted." AuthType Basic AuthUserFile /home/www/users/ufa/passw/.htpasswd Require Alexey Serpul </ Files >
Не стоит забывать, что пары пароль-логин в случае работы с .htpasswd передаются по каналам связи в нешифрованном открытом виде и при определённых условиях могут быть перехвачены злоумышленниками. Для наибольшей безопасности рекомендуется организовать доступ к закрытым областям сайта через защищённое SSL - соединение.
- Сделать невозможным скачивание файлов из Вашего архива с других сайтов.
Код: RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www.)?ufa-host\.ru/.*$ [NC] RewriteCond %{HTTP_REFERER} !.*/links\.html$ RewriteRule .(jpg|gif|png|css|mov|swf|dcr|exe|rar|avi|vob|zip)$ - [F]
RewriteEngine on - включение механизма преобразований. Условия преобразования: RewriteCond %{HTTP_REFERER} !^$ если произошел переход из "закладок" или RewriteCond %{HTTP_REFERER} !^http://(www.)?ufa-host\.ru/.*$ [NC] переход не с Вашего или санкционированного сайта или RewriteCond %{HTTP_REFERER} !.*/links\.html$ переход со страницы links.html любого домена. Результат: RewriteRule .(jpg|gif|png|css|mov|swf|dcr|exe|rar|avi|vob|zip)$ - [F] в случае запроса файлов из списка (jpg|gif|png|css|mov|swf|dcr|exe|rar|avi|vob|zip) выдаётся страница Forbidden(доступ запрещён).
- Запретить доступ к файлам определенного формата.
Код: <FilesMatch "\.(gif|png|jpeg|rar)$"> Order Deny,Allow Deny from all </FilesMatch>
<FilesMatch "\.(gif|png|jpeg|rar)$"></FilesMatch> - содержимое этого контейнера будет применено только к файлам указанного типа, в примере к типам файлов gif,png,jpeg,rar. Order - устанавливает порядок выполнения директив, в данном случае сначала Deny, затем Allow. Deny from all - запретить для всех.
- Запрет доступа к сайту в в определенный промежуток времени.
Код: RewriteCond %{TIME_HOUR}%{TIME_MIN} >0900 RewriteCond %{TIME_HOUR}%{TIME_MIN} <1830 RewriteRule .* - [ F ]
- запретить - открыть доступ с определенных (айпи) IP адресов;
Код: Order Allow,Deny Deny from 83.24.15.1 Allow from All
Deny from 83.24.15.1 - запретить доступ с IP 83.24.15.1. Так же можно запретить доступ с нескольких IP-адресов, указав их через пробел или запятую: Deny from 83.24.15.1, 83.24.15.2. В случае использования директивы Deny from 83.24.15.1, 83.24.15 - запретить доступ из всей подсети класса С. Или запретить доступ диапазону Deny from 83.24.15.1/100, в случае необходимости запретить доступ нескольким диапазонам следует записывать диапазоны через пробел или запятую. Синтаксис директив Allow и Deny полностью одинаков.
- SSI, Perl, PHP и др. включения - директивы.
Для обработки SSI в файлах с произвольным раширением:
Код: AddHandler server-parsed .shtml .shtm .htm .html
.shtml .shtm .htm .html - список типов файлов для обработки парсером SSI.
- Редиректы (Redirect).
Синтаксис:
Код: Redirect [status] URL-path URL
{status} - необязательное поле, определяет код возврата:
-permanent (301 — документ перемещен постоянно) -temp (302 — документ перемещен временно) -seeother (303 — смотрите другой) -gone (410 — убран)
Примеры:
Код: Redirect text/ http://ufa-host.ru/index.php Redirect text/index.html http://ufa-host.ru/index.php Redirect /~ufa http://ufa-host.ru Redirect /~ufa/index.php http://ufa-host.ru Redirect http://forums.ufa-host.ru/ http://ufa-host.ru/
Директива RedirectMatch, аналогична Redirect, за исключением того, что вместо адреса запрашиваемого документа пишется регулярное выражение (шаблон). Синтаксис:
Код: Redirect [status] regexp URL
Код: RedirectMatch (.*)\.gif$ http://ufa-host.ru/$1.png RedirectMatch (.*\.jpg)$ http://ufa-host.ru/$1
- Использование собственных страниц ошибок.
Код: ErrorDocument 404 http://ufa-host.ru/404.html ErrorDocument 403 http://ufa-host.ru/403.html ErrorDocument 400 http://ufa-host.ru/400.html ErrorDocument 500 http://ufa-host.ru/500.html
- Установка кодировки текста.
Установка кодировки по умолчанию:
Код: AddDefaultCharset WINDOWS-1251
Кодировка для загружаемых файлов:
Код: CharsetSourceEnc windows-1251
Для отмены перекодировки:
Код: CharsetDisable On
- Настройка принудительного кеширования.
Для ускорения работы пользователей и снижения нагрузки на сервер рекомендуется пользоваться принудительным кешированием редко обновляющегося статического содержимого Вашего сайта. Суть этого кеширования заключается в передаче веб-сервером Apache http заголовка expires, позволяющего удерживать кешированные данные в кеше броузера пользователя до наступления времени указанного в переданном http заголовке.
Код: ExpiresActive on ExpiresDefault "access plus 1 days"
ExpiresActive on - включить передачу http заголовков expires ExpiresDefault "access plus 1 days" - кеширование сроком на сутки после первого доступа, ExpiresDefault A 86400 - альтернативная запись, 86400 - время в секундах.
Код: ExpiresActive on ExpiresDefault "modification plus 1 weeks"
ExpiresDefault "modification plus 1 weeks" - кеширование сроком на одну неделю после последнего изменения объекта, ExpiresDefault M604800 - альтернативная запись. Так же можно отдельно задавать срок кеширования для различных объектов:
Код: ExpiresActive on ExpiresByType text/html "access plus 10 minutes" ExpiresByType text/plain "access plus 10 minutes" ExpiresByType image/gif "modification plus 1 days" ExpiresByType image/jpeg "modification plus 1 days"
- Добавление дополнительных форматов (типов) файлов.
Присвоение MIME типа text/html файлам с расширением .web:
Код: AddType "text/html" .web
|
|