Посторим вместе

Посторим вместе

Found a mistake ?

Обнаружили ошибку на сайте ? Выделите фрагмент текста и нажмите на Shift + Enter.

Last files

Date iconOct.28

Система управления веб сайтом CompactCMS.Бесплатная система.RequirementsTo be able to run Compact...

Date iconAug.22

Features Here are some of the main features of HemingwayEx: Widgetized: This theme can be used wi...

Всего пользователей

1487 registered
0 today
0 this week
0 this month
Last: Васпел




Locations of visitors to this page
Main arrow Articles arrow Другое arrow Директивы файла .htaccess
Директивы файла .htaccess Print E-mail
User Rating: / 0
PoorBest 
Written by Master   
Wednesday, 29 October 2008
После опубликования статьи Защита сайта с помощью .htaccess и .htpasswd Мне пришло несколько писем с просьбой рассказать, что еще можно сделать с помощью директив файла .htaccess.

Для начала немного вводной информации: .htaccess (с точкой в начале имени) - это файл, который дает возможность конфигурировать работу сервера в отдельных директориях (папках), не предоставляя доступа к главному конфигурационному файлу. Например, устанавливать права доступа к файлам в директории, менять названия индексных файлов, самостоятельно обрабатывать ошибки Apache, перенаправляя посетителей на специальные страницы ошибок.

Это достаточно удобно в случае, когда Вам необходимо переопределить управляющие директивы WEB-сервера для конкретного каталога или сайта (если на WEB-сервере несколько сайтов) и не хочется менять установки для всех остальных. А так же в случаях, когда у Вас нет доступа к файлу httpd.conf.

Файл .htaccess может быть размещен в любом каталоге. Директивы этого файла действует на все файлы в текущем каталоге и во всех его подкаталогах (если эти директивы не переопределены директивами нижележащих файлов .htaccess). Для того, что бы эти файлы .htaccess можно было использовать - необходимы соответствующие настройки главного конфигурационного файла. Как правило, подавляющее большинство хостеров разрешают использовать настройки в файле .htaccess.

Теперь собственно о файле и допустимых директивах в нем. Пути к файлам и директориям должны указываться от корня сервера, например, /pub/home/server/html/

Если вы не знаете путь от корня сервера, то Вы можете его узнать, спросив у администратора сервера, либо можете посмотреть сами, запустив на сайте функцию PHP - phpinfo(). Вам необходимо найти переменную doc_root и посмотреть ее значение - это будет путь от корня сервера до Вашей основной директории. В именах доменов обязательно должны быть указаны протоколы, например:

Redirect / http://www.test.ru

Глобальное перенаправление (редирект) на другой адрес:

Redirect / http://www.test.ru

Перенаправление (редирект) только при запросе определенных страниц:

redirect /data http://www.test.com/data
redirect /forum http://www.test.com/forum

При запросе страниц из каталогов data и forum будет произведено перенаправление на новые адреса. Перенаправление всех запросов кроме:

RewriteEngine On
RewriteRule !.(gif|jpg)$ index.php

Все запросы кроме запросов к файлам с расширениями .gif и .jpg будут перенаправлены на файл index.php

Перенаправление (редирект) только посетителей с определенным IP-адресом:

SetEnvIf REMOTE_ADDR 192.168.11.1 REDIR="redir"
RewriteCond %{REDIR} redir
RewriteRule ^/$ /data.html

Если посетитель имеет IP-адрес 192.168.11.1, то ему будет открыта страница data.html.

Изменение названия индексной страницы:

DirectoryIndex index.html index.php index.shtml

Можно указать несколько индексных страниц. При запросе каталога они будут искаться в том порядке, в котором перечислены в директиве DirectoryIndex. Если не будет найден файл index.html, то будет произведен поиск файла index.php и т.д.

Выполнять код PHP в файлах HTML

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

Добавив эти строки в .htaccess вы дадите директиву серверу выполнять инструкции PHP не только в файлах с расширением *.php и *.phtml, но и в файлах с расширением *.htm и *.html.

Обработка ошибок Apache

ErrorDocument 401 /401.html
ErrorDocument 403 /403.html
ErrorDocument 404 /404.html
ErrorDocument 500 /500.html

При возникновении этих ошибок посетитель будет перенаправлен на специально созданные страницы.

401 ошибка - Требуется авторизация (Authorization Required).

403 ошибка - пользователь не прошел аутентификацию, доступ запрещен (Forbided).

404 ошибка - Документ не найден (Not Found).

500 ошибка - Внутренняя ошибка сервера (Internal Server Error).

Запрет на отображение содержимого каталога при отсутствии индексного файла

Options -Indexes

Определение кодировки, в которой сервер "отдает" файлы

AddDefaultCharset windows-1251

Определение кодировки на загружаемые файлы

CharsetSourceEnc windows-1251

Запрет доступа ко всем файлам

deny from all

Запрещен доступ ко всем файлам и каталогам в текущей директории.

Разрешить доступ только с определенного IP-адреса

order deny,allow
deny from all
allow from 192.168.11.1

Строка order deny,allow определяет, в каком порядке следует выполнять директивы. Сначала выполняется директива запрета доступа, а затем разрешается доступ только для IP-адреса 192.168.11.1. Если в первой строке поменять порядок следования директив на order allow,deny, то доступ для данного IP-адреса не будет открыт, так как директива deny, выполняемая последней перекроет действия директивы allow.

Запретить доступ с определенного IP-адреса

deny from 192.168.11.1

Запретить доступ к определенному файлу


deny from all

Запрещен доступ посетителей к файлам config.php. Этот запрет не действует на скрипты web-сервера. Они по прежнему будут иметь доступ к этому файлу.

Запретить доступ к файлам с определенным расширением


deny from all

Здесь запрещен доступ к файлам с расширением *.ini. Директива, при указании имени файлов, позволяет использовать подстановочные символы.

? - любой одиночный символ

* - любая последовательность символов, исключая символ / (слеш)

Запретить доступа к файлам с несколькими типа расширений


deny from all

Запрещен доступ к файлам с расширением *.inc, *.conf и *.cfg. Хотя директива, по умолчанию, не работает с регулярными выражениями, но их можно включить, поставив символ тильды (~) в опциях директивы. Синтаксис следующий:

[тильда] [пробел] [далее_все_без_пробелов]

Установка пароля на директорию

AuthName "Admin page"
AuthType Basic
AuthUserFile /pub/home/server/.pass
require valid-user

Установка прав доступа с помощью файлов .htaccess более подробно рассмотрена статье: Защита сайта с помощью .htaccess и .htpasswd

Источник:http://www.kamaikin.ru

.htaccess


Views: 447

  Be first to comment this article

Write Comment
Name:
E-mail
Comment:



Code:* Code

Last Updated ( Wednesday, 29 October 2008 )
 
Next >