Форумы хостинга Уфа-Хост

Хостинг Башкирии ufa-host.ru
Текущее время: 04 сен 2010, 02:29

Часовой пояс: UTC + 5 часов




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: Работа с .htaccess
СообщениеДобавлено: 22 мар 2008, 21:56 
Не в сети
Сотрудник Уфа-Хост

Зарегистрирован: 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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB, hosted by Ufa-host