Для чего служит .htaccess? Файл .htaccess позволяет индивидуально настраивать работу веб-сервера для вашего сайта. Можно устанавливать пароли для доступа к странице или целой папке, устанавливать страницу, выдаваемую по умолчанию при запросе к каталогу, и многие другие. Вы можете создаватьнесколько файлов .htaccess — по одному для каждой директории на вашем сайте. При изменении в файле .htaccess нет необходимости перезапустаь сервер — как только вы поменяли что-то в этом файле, изменения тут же вступают в силу. Даже если вы допкустите ощибки в этом файле, то они отразятся только на вашем сайте (или на той его директории, в которой он расположен). Если файл .htaccess расположен в корневой директории сервера, то его действия распространяется на весь сервер, кроме тех директорий, где находится другой файл .htaccess (и кроме всех папок "ниже" этой папки со вторым .htaccess). Поскольку файл .htaccess является служебным, то он не доступен веб-пользователю из браузера. Пример: Структура ваших директорий на сервере такая: (серым цветом отмечены директории в которых нельзя устанавливать файл .htaccess Действие .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 -------------------------------------------------- Источник http://library.hosting-design.net/0/027/article/
Маоодец но я думаю здесь это описание просто не к чему пусть поиск юзают ведь такого описания валом ты лиш обобщил =) ну молодец всё равно респект от меня =)
Ну почему же? Раздел - ЧУЖИЕ статьи. Хотя есть претензия. что всё скопипастено. "Серым цветом отмечено..." А серым цветом ничего не отмечено. Просто неуважение к читателям. Даже если не понял статьи, отформатировать то ее можно для легкого восприятия, а? Насчет самой статьи - азбука для продвинутых юзеров (именно юзеров), головоломка для начинающих. Так для кого она вообще нужна? .htaccess - отличная вещь для защиты сайтов от идиотов. Автор! Напиши про нее нормально, в инете полно инфы. И будет тебе счастье и плюсы.
Ок. Попробую сам написать потом понормальней. Просто нашел в инете статью, на мой взгляд, хорошую, вот и решил поделиться. Ссылку на источник дал, чтоб не присваевать же себе чужую статью...
На самом деле бред. .htaccess служит неким интерфейсом между конкретным сайтом и конфигом вирт. сервера. Т.е. грубо говоря название можно изменить на "Учимся конфигурировать apache". А это уже пахнет apache.org и opennet.ru
да и потом с помощью .htaccess можно конфигурить любой подключенный модуль, т.е. грубо говоря называя статью подобным образом нужно либо кидать одну ссылку на офф сайт вместо кучи текста, либо описывать конфигурацию каждого модуля =))) в общем в мусор. Ребята, apache.org вам в руки, там все есть. И даже немного больше.
Кульно! Теперь у меня на сайте если кто-то пытается посмотреть config.php его кидает на http://lleo.aha.ru/na/ Кульно! =)
помогите пожалуйста с синтаксисом, правильно ли я набрал его в файле .htaccess а то ошибка 500 выходит Code: php_value max_execution_time 100 се больче вообще ни чего нету.
написал вот так: Code: <?php ini_set("max_execution_time", "500"); ini_set("memory_limit", "128M"); phpinfo() ?> и все равно вот такая ошибка: Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log. Apache/1.3.33 Server at graber.freehostia.com Port 80 что то все таки не так написано! кондировка Unix