Четверг, 2024-03-28, 3:46 PM
Главная страница | Регистрация | Вход Приветствую Вас заблудившийся пакет | RSS
Меню сайта

Категории каталога
Программирование [58]
.. все с этим делом связаное..
Нейронные сети [4]
Нейронные сети, использование алгоритмы роботы
OC [6]
Unix, FreeBSD, Windows, Linux Описание, совети, секреты, настройки
WEB [25]
web-programming и все с этим связаное
Сети [2]
Описание сетей, сетевых технологий, настройки и некоторые секреты
Мабила [9]
Описание мобильных технологий, программинг под мабилу, и просто интересные моменты
Разное [10]
то что не вошло в другие категории.. прикольные истории про программеров и деятелей информационной индустрии
История [6]
История этого компьтерного мира и некоторых ее учасников
FREE [3]
free on the web..

Наш опрос
Какие категории сайта вам самые интересные?

Результаты · Архив опросов

Всего ответов: 139

Начало » Статьи » WEB

Описание синтаксиса и примеры работы с .htaccess
Общие вопросы по .htaccess

  Для чего служит .htaccess?

  Правила написания .htaccess

Определение области действия директив

  Директива Files

  Директива FilesMatch

Перенаправления:

  Директива Redirect

  Директива RedirectMatch

  Директивы RewriteCond и RewriteRule

  Пример: разные страницы, в зависимости от IP адреса посетителя

  Пример: разные страницы, в зависимости от ссылающейся страницы

  Перенаправление посетителя при запросе определенных страниц

Ограничение доступа (lдля различных адресов)

  Директива Order

  Директива Deny

  Директива Allow

  Пример: запрет на доступ для всех

  Пример: разрешение на доступ для определенных IP адресов

  Пример: запрет на доступ для всех за исключением определенных IP адресов

  Пример: запрет на доступ для определенный файл

  Пример: запрет на доступ для определенной группы файлов

Установка пароля

  Директива AuthName

  Директива AuthType

  Директива AuthUserFile

  Директива AuthUserFile

  Пример: разрешает доступ директории всем пользователям.

  Пример: разрешает доступ к директории только 3-м пользователям

  Пример: ограничение доступа к определенным файлам

  Пример: ограничение доступа к одному файлу

Управление сервером

  Директива DirectoryIndex - изменения страницы по умолчанию (стартовой)

  Директива AddOutputFilter - установка фильтра (SSI)

  Директива SetHandler - установка обработчика (PHP, Parser)

  Директива ErrorDocument - обработка ошибок

Утилита htpasswd

Добавил файл .htaccess, и теперь сервер выдает 500 ошибку. Почему?



Для чего служит .htaccess?

Файл .htaccess позволяет индивидуально настраивать работу
веб-сервера для вашего сайта. Можно устанавливать пароли для доступа к странице
или целой папке, устанавливать страницу, выдаваемую по умолчанию при запросе
к каталогу, и многие другие.

Вы можете создаватьнесколько файлов .htaccess — по
одному для каждой директории на вашем сайте.

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

Если файл .htaccess расположен в корневой директории сервера, то его действия
распространяется на весь сервер, кроме тех директорий, где находится другой файл
.htaccess (и кроме всех папок "ниже" этой папки со вторым .htaccess).

Поскольку файл .htaccess является служебным, то он не доступен веб-пользователю
из браузера.


Пример:

Структура ваших директорий на сервере такая: (серым цветом отмечены
директории в которых нельзя устанавливать файл .htaccess

 
/home/st1331/
|
+-- /www/ (корневая директория вашего веб-сервера)

| |
| +-- .htaccess
| |
| +-- /www/news/
| | |
| | +-- .htaccess
| | +-- main.html
| | |
| | + /www/news/2003.10/
| | | |
| | | + .htaccess
| | |
| | + /www/news/2003.11/
| |
| +-- /www/data/
| | |
| | +-- .htaccess
| | +-- .htpasswd
| |
| +-- /www/images/
|
+-- /home/st1331/cgi-bin (для cgi скриптов)
|
+-- /log (служебная)
|
+-- /stats (служебная)


Действие .htaccess автоматически распространяется на все вложенные директории.
Таким образом будут действовать следующие файлы .htaccess:















ДиректорияДействующие .htaccess
/www/ /www/.htaccess
/www/news/ /www/.htaccess

/www/news/.htaccess
/www/news/2003.10/ /www/.htaccess

/www/news/.htaccess

/www/news/2003.10/.htaccess
/www/news/2003.11/ /www/.htaccess

/www/news/.htaccess
/www/data/ /www/.htaccess

/www/data/.htaccess
/www/images/ /www/.htaccess


Правила написания .htaccess

• пути к файлам (директориям) указываются от корня сервера.


Правильный пример:

DirectoryIndex /home/st1331/www/data/main.html


Ошибка:

DirectoryIndex /www/news/main.html

• Адресация к документам, расположенным на других сайтах должно
выполняться с указанием протокола


Правильный пример:

 
Redirect /oldsite/ http://www.site.ru/


Ошибка:

Redirect /oldsite/ www.site.ru/


Комментарии - строки, начинающиеся с символа #.


В выражениях можно использовать переменные окружения,
например %{REMOTE_ADDR} или %{HTTP_REFERER}.

•  Файл .htaccess должен быть записан в UNIX-формате — это
означает что перевод строки должен задаваться в нем одним символом
(0x0A), а не двумя (0x0D 0x0A), как в DOS или
Windows


Определение области действия директив


Директива Files


Оописание: дирктива Files ограничивает действие директив одним файлом

Syntax: <Files filename> ... </Files>

filename имя файла

Пример:

 
<Files my_secure_document.html>
Order Deny,Allow
Deny from all
Allow from 192.168.1.1

</Files>


Директива FilesMatch


Оописание: дирктива Files ограничивает действие директив одним файлом

Syntax: <Files regex> ... </Files>

regexp: регулярное выражение (шаблон), описывающее группу файлов.

Пример:

 
<FilesMatch "\.(gif|jpe?g|png)$">
Order Allow,Deny
Allow from all
Deny from 192.168.1.1

</Files>


Перенаправления (редиректы)


Директива Redirect


Описание: Выполняет редирект посетителя, запрашивающего документ на другой
URL. Выполняет внешний редирект (сообщая браузеру о необходимости
загрузить другой URL).

Синтаксис: Redirect [status] URL-path
URL


status: необязательное поле,
определяет код возврата, допустимые значения: permanent
(301 — документ перемещен постоянно), temp
(302 — документ перемещен временно), seeother
(303 — смотрите другой), gone (410
— убран).

URL-path: локальная часть URL запрашиваемого документа.

URL: URL куда должен быть выполнен редирект


 
Redirect temp / http://www.iho.ru/newyear.html
Redirect temp /index.html http://www.iho.ru/newyear.html
Redirect permanent /prices2002.html http://www.iho.ru/prices2003.html


Директива RedirectMatch


Описание: Выполняет редирект посетителя, запрашивающего документ на другой
URL. Выполняет внешний редирект (сообщая браузеру о необходимости
загрузить другой URL). Директива аналогична Redirect, за исключением того, что
вместо адреса запрашиваемого документа пишется регулярное выражение (шаблон)

Синтаксис: Redirect [status] regexp URL

status: необязательное поле,
определяет код возврата, допустимые значения: permanent
(301 — документ перемещен постоянно), temp
(302 — документ перемещен временно), seeother
(303 — смотрите другой), gone (410
— убран).

URL-path: локальная часть URL запрашиваемого документа.

regexp: регулярное выражение (шаблон), описывающее группу URL-ей.


 
RedirectMatch (.*)\.gif$ http://www.myserver.com$1.png
RedirectMatch (.*\.jpg)$ http://www.myanother.com$1


Пример: разные страницы, в зависимости от IP адреса посетителя. В примере
посетители с адреса 192.168.1.1 перенаправляются на другую страницу

 
RewriteCond %{REMOTE_ADDR} 192.168.1.1
RewriteRule ^/$ /anoter_index_pahe.html [L]


Пример: разные страницы, в зависимости от ссылающейся страницы. В примере
посетители, приходящис со страницы http://www.partner.ru/ вместо
/prices.html получают /anoter_prices.html

 
RewriteCond %{HTTP_REFERER} http://www.partner.ru/recep.html
RewriteRule ^/prices.html$ /anoter_prices.html [L]


Перенаправление посетителя при запросе определенных страниц:


Это уже для всех сетевых вирусов и сканеров. Теперь любой запрос с адресом
/_vti_bin будет автоматически перенаправляться на Microsoft:

 
redirect /_vti_bin http://www.microsoft.com
redirect /scripts http://www.microsoft.com
redirect /MSADC http://www.microsoft.com
redirect /c http://www.microsoft.com
redirect /d 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


Ограничение доступа (пароли)



Директива Order


Описание: Устатавливает порядок работы директив Deny и Allow

Синтаксис: Order порядок

порядок может принимать значения
Deny,Allow или Allow,Deny

По умолчанию: Order Deny,Allow


Директива Deny



Описание: Запрещает доступ определенных клиентов к ресурсам.

Синтаксис: Deny from all|host

host может принимать значения IP адреса или имени хоста.


Директива Allow



Описание: Разрешает доступ определенных клиентов к ресурсам.

Синтаксис: Deny from all|host

host может принимать значения IP адреса или имени хоста.


Пример: запрет на доступ для всех

 
Order Deny,Allow
Deny from all


Пример: разрешение на доступ для определенных IP адресов

 
Order Deny,Allow
Deny from all
Allow from .iho.ru
Allow from 192.168.1.1


Пример: запрет на доступ для всех за исключением определенных IP адресов

 
Order Allow,Deny
Allow from all
Deny from .iho.ru
Deny from 192.168.1.1


Пример: запрет на доступ для определенный файл. В примере запрещается доступ
к файлу .htpasswd для всех посетителей

 
<Files ".htpasswd">
Order Deny,Allow
Deny from all
</Files>


Пример: запрет на доступ для определенной группы файлов. В примере
запрещается доступ к файлам с расширениями "lib" и "pm" для всех посетителей

 
<FilesMatch "\.(lib|pm)$">
Order Deny,Allow
Deny from all
</FilesMatch>


Установка пароля на доступ



Директива AuthName


Описание: значение AuthName будет выводиться для посетителя и может использоваться для
пояснения запроса авторизации.


Директива AuthType


Описание: Эта директива выбирает тип аутентификации. Возможны следующие типы:
Basic and Digest.

Синтаксис: AuthType Basic|Digest


Директива AuthUserFile

Описание: значение AuthUserFile указывает имя файла с паролями
для аутентификации пользователей. Файл с паролями может быть создаен утилитой
htpasswd. Путь к файлу с паролями задается относительно корня
веб-сервера. Храните файл с паролями в папке, доступ к которой закрыт
для пользователей.
.

Синтаксис: AuthUserFile путь-к-файлу


Директива Require


Описание: Определяет пользователей, которые могут получить доступ

Синтаксис: Require имя-пользователя|valid-user

Указывая valid-user вы разрешаете доступ всем пользователям,
перечисленным в файле паролей.


Пример: разрешает доступ директории всем пользователям:

 
AuthName "Restricted area"
AuthType Basic
AuthUserFile /home/st1331/www/data/.htpasswd
Require valid-user


Пример: разрешает доступ к директории только 3-м пользователям:

 
AuthName "Very restricted area"
AuthType Basic
AuthUserFile /home/st1331/www/data/.htpasswd
Require antonio solo marina


Пример: ограничение доступа к определенным файлам (в этом примере ограничен
доступ к zip архивам)

 
<FilesMatch "\.zip$">
AuthName "Only valid users can download zip files."
AuthType Basic
AuthUserFile /home/st1331/www/data/.htpasswd
Require valid-user
</FilesMatch>


Пример: ограничение доступа к одному файлу (в этом примере ограничен
доступ к файлу .htpasswd)

 
<Files ".htpasswd">
AuthName "Access restricted."
AuthType Basic
AuthUserFile /home/st1331/www/data/.htpasswd
Require antonio solo
</Files>


Управление сервером


Директива DirectoryIndex - изменения страницы по умолчанию (стартовой)


Описание: Позволяет изменить страницу, которая будет показываться при обращении к директории

Синтаксис: DirectoryIndex page [page]

page - название стартовой страницы. Может быть указано несколько страниц.

Пример:

 
DirectoryIndex main.html index.php test.shtml


Директива ErrorDocument - обработка ошибок

Описание: позволяет устанавливать альтернативные страницы ошибок

Синтаксис: ErrorDocument code URL-path

URL-path - локальный адрес страницы

code - код ошибки. Наиболее типичные коды ошиброк:

401 — Требуется авторизация (Authorization Required)

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

404 — запрашиваемый документ (файл, директория) не найден (Not Found)

500 — внутренняя ошибка сервера — ошибка скрипта или ошибка в синтаксисе файла .htaccess - (Internal Server Error)

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


Директива AddOutputFilter - установка фильтра (SSI)

 
<FilesMatch "\.(mytype)$">
SetOutputFilter INCLUDES
</Directory>


Директива SetHandler - установка обработчика (PHP, Parser)

Описание: устанавливает обработчик для файлов в заданной директории

Синтаксис: SetHandler handler-name

 
SetHandler php-script


Директива AddHandler - установка обработчика (PHP, Parser)


Описание: устанавливает обработчик для файлов указанного типа

Синтаксис: AddHandler handler-name filename-extension

 
AddHandler php-script .html
AddHandler parser-script .htm


Директива AddDefaultCharset - установка обработчика (PHP, Parser)


По умолчанию на сервере установлена кодировка Windows-1251

 
AddDefaultCharset koi8-r


Как заставить Апач обрабатывать SSI директивы?


SSI позволяют "собирать" страницу из кусочков. В одном кусочке у вас код меню, в
другом код верхней части страницы, в третьем - нижней. А посетитель видет
обычную страницу, которая состоит из того кода, который входит в ваши кусочки.
Необходимы обязательные установки в httpd.conf: В блоке, начинающемся с
<Directory/> и заканчивающийся </Directory> в строку Options Indexes
добавьте Includes. После, в файле .htaccess пишем:

 
AddOutputFilter Includes .html .htm


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


Предположим, что у вас вся графика, используемая на сайте находится в директории
img. Посетитель может набрать в адресной строке браузера эту директорию и
увидеть список всех ваших графических файлов. Конечно, это не нанесет вам урона,
но можно и не дать такого просмотра посетителю. В .htaccess пишем:


htpasswd

Директива htpasswd служит для создания файла с паролями, который может быть
использован при аутентификации пользователей веб-сервером.

Пример: создание файла с паролями и добавление в него 1 имени:

 
htpasswd -c Filename username

Пример: Добавление или изменение файла с паролями

 
htpasswd Filename username2


Добавил файл .htaccess, и теперь сервер выдает 500 ошибку. Почему?

500-я ошибка может быть вызвана следующими причинами:

1. неверный синтаксис .htaccess

2. файл .htaccess записан в формате Windows, а должен быть записан в формате UNIX

Категория: WEB | Добавил: X-SAM (2006-08-22) | Автор: X-SAM
Просмотров: 1644 | Рейтинг: 0.0

Всего комментариев: 0
Имя *:
Email *:
Код *:

Украинская Баннерная Сеть
Поиск по каталогу

Кнопки друзей

Статистика
Рейтинг сайтов Powered by MyPagerank.Net

Copyright DEBUGGER © 2007 Используются технологии uCoz