Привет, Гость!
Главная
Вход

Последняя активность

Форум / Вап-мастеру / ЛИКБЕЗ (для начинающих)
Поиск
  Настройка файла .htaccess
LYCUK LYCUK [Off] [#] (23.12.2009 / 11:09)
Использование файла .htaccess
Файл .htaccess предназначен для индивидуальной настройки сайтов и их каталогов. Он может содержать почти все инструкции, допустимые в файле httpd.conf (главный файл конфигурации сервера Апач). В отличие от httpd.conf, который должен лежать в каталоге /usr/local/etc/httpd/conf (а к нему имеет доступ только администратор сервера), файл .htaccess может лежать и, будет обрабатываться в любом каталоге сайта (если его обработка разрешена администратором сервера). В отличие от httpd.conf, настройки которого распространяются на всех пользователей сервера (владельцев сайтов), файл .htaccess вносит локальные изменения в настройки, влияя только на каталог его содержащий, вместе с вложенными в него каталогами. Файл .htaccess более глубокого вложения, переопределяет настройки аналогичного файла верхнего уровня, для своего каталога и тех, что в него вложены. Так, например, для каталога /www/, настройки задаются файлом /www/.htaccess, а для каталога /www/data/ – файлами /www/.htaccess и /www/data/.htaccess. Если в файле .htaccess нижнего уровня обнаружены те же инструкции, что и в .htaccess верхнего уровня (вероятно с иными параметрами), то выполняться будут именно они. Таким образом, образуется иерархическая структура правил, которые на нижнем уровне могут быть совершенно не такими как на верхнем (что-то мне это напоминает).
Поскольку файлы .htaccess нередко содержат информацию об аутентификации, доступ к ним из Интернета, обычно, запрещен из соображений безопасности. Вы можете разрешить или запретить доступ к ним самостоятельно, используя инструкции в самом файле .htaccess.

Синтаксис .htaccess
Вот обязательной синтаксис, несоблюдение которого приводит к ошибкам сервера:
Пути к файлам (директориям) указываются от корня сервера:
/opt/home/www.astanafoto.com/htdocs/config/.htpasswords
Домены с указанием протокола:
http://www.site.ru
Файл имеет название именно «точка»htaccess
.htaccess должен быть записан в UNIX-формате, то есть, перевод строки должен задаваться в нем одним символом (десятичный 10, шестнадцатиричный 0A), а не двумя (десятичный 13, шестнадцатиричный 0D + десятичный 10, шестнадцатиричный 0A), как в DOS или Windows. Для тех, кто работает из под Windows, полученный тексовой файл потребуется открыть в 16-ричном редакторе и запустить замену 0D на 20 (пробел в 16-ричном варианте). Есть и другие способы превращения Windows-файла в UNIX-формат.

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

Блок Files
Блок Files ограничивает действие вложенных в него директив одним файлом, название которого указывается в открывающем теге блока:
<Files "ФАЙЛ">
ДИРЕКТИВЫ
</Files>

Блок FilesMatch
Блок FilesMatch ограничивает действие вложенных в него директив файлами, соответствующими шаблону, указываемому в открывающем теге блока:
<FilesMatch "ШАБЛОН$">
ДИРЕКТИВЫ
</FilesMatch>

Блок IfModule
Блок IfModule ограничивает действие вложенных в него директив условием, что требуемые для их выполнения, модули загружены:
Этот блок позволяет избежать ошибочных ситуаций
<IfModule МОДУЛЬ>
ДИРЕКТИВЫ
</IfModule>
Если перед названием модуля стоит слеш,директива выполняется только если модуль не загружен
<IfModule /МОДУЛЬ>
ДИРЕКТИВЫ
</IfModule>

Блок IfDefine
Блок IfDefine выполняется только при условии, что требуемые для их выполнения, значения установлены:
Так же, как IfModule, этот блок позволяет избежать ошибочных ситуаций
<IfDefine APACHE2>
ДИРЕКТИВЫ
</IfDefine>

Директивы файла .htaccess
В файле .htaccess предусмотрено ни много директив, но и это «ни много», оказывается мощьнейшим инструментом настройки сервера в умелых рука.
Парольная защита с помощью файла .htaccess
Пароль на директорию:
AuthName "Private zone"
AuthType Basic
AuthUserFile /pub/home/твой_логин/.htpasswd
require valid-user
</Files>
Значение AuthName будет выводиться для посетителя и может использоваться для пояснения запроса авторизации. Значение AuthUserFile указывает на место, где хранится файл с паролями для доступа к данной директории. Этот файл создается специальной утилитой htpasswd.exe.
Например в директории, которую защищаем паролем создаем такой .htaccess:
AuthName "For Registered Users Only"
AuthType Basic
AuthUserFile /pub/site.ru/.htpasswd
require valid-user
</Files>
В этом примере, посетитель при запросе директории, будет читать фразу "For Registered Users Only", файл с паролями для доступа должен лежать в директории /pub/site.ru/ и называться .htapasswd . Директория указывается от корня сервера, если вы неправильно зададите директорию, то Апач не сможет прочитать файл .htpasswd и никто не получит доступа к данной директории.
Пароль только на 1 файл:
Аналогично паролированию директории полностью, можно ставить пароль только на 1 файл.
Пример установки пароля на файл private.zip:
<Files private.zip>
AuthName "Users zone"
AuthType Basic
AuthUserFile /pub/home/твой_логин/.htpasswd
</Files>
Пароль на группу файлов:
Аналогично, используя , можно ставить пароли по маске файлов.
Пример установки пароля на доступ ко всем файла с расширением "sql":
<Files "\.(sql)$">
AuthName "Users zone"
AuthType Basic
AuthUserFile /pub/home/твой_логин/.htpasswd
</Files>
Проверка прав доступа с помощью файла .htaccess
Задача: есть каталог a1 и в нем два вложенных каталога a2, a3, введено 2 уровня пользователей. 1 группа имеет доступ только к a1 и a2, 2-я ко всем трем каталогам. Необходимо проводить аутентификацию только 1 раз - при доступе к a1, но при этом соблюдать права на доступ к а2 и а3.
Ник и пароль запрашиваются только при входе на а1 - если у юзвера есть доступ на а2 пароль уже не запрашивается. Если на а3 доступа нет, вылетит табличка "введите пароль".
www.site.ru/a1
www.site.ru/a1/а2
www.site.ru/a1/a3
a1 - общий и вместе с тем закрытый. а2 и а3 только для отдельных личностей.
файл .htaccess для каталога а1:
AuthName "Input password"
AuthType Basic
AuthUserFile "/pub/home/login/htdocs/clousearea/.htpasswd"
require valid-user
файл .htaccess для каталога а2:
AuthName "Input password"
AuthType Basic
AuthUserFile "/pub/home/login/htdocs/clousearea/.htpasswd"
require user юзвер1 юзвер2 юзвер3
файл .htaccess для каталога а3:
AuthName "Input password"
AuthType Basic
AuthUserFile "/pub/home/абв/htdocs/clousearea/.htpasswd"
require user юзвер1 юзвер4 юзвер5
Перенаправление (редирект) посетителя с помощью файла .htaccess
Редирект на другой url:
Что бы сделать перенаправления посетителя на сайт http://site.ru в .htaccess
Redirect / http://www.site.ru
Показ разных страниц, в зависимости от IP адреса посетителя:
SetEnvIf REMOTE_ADDR <нужный ip адрес> REDIR="redir"
RewriteCond %{REDIR} redir
RewriteRule ^/$/another_page.html
Например, перенаправление посетителей с ip адресом 192.12.131.1 на страницу about_my_sity.html:
SetEnvIf REMOTE_ADDR 192.12.131.1 REDIR="redir"
RewriteCond %{REDIR} redir
RewriteRule ^/$ /about_my_sity.html
Перенаправление посетителя при запросе определенных страниц:
Это уже для всех сетевых вирусов и сканеров.
Теперь любой запрос с адресом /_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
Указание стартовой страницы с помощью файла .htaccess
Что бы поменять страницу, которая будет показываться при обращении к директории, пишем:
DirectoryIndex <нужная страница>
Можно указывать несколько страниц.
DirectoryIndex index.shtml index.php index.php3 index.html index.htm
Определение обработки SSI директив с помощью файла .htaccess
SSI позволяют "собирать" страницу из кусочков. В одном кусочке у вас код меню, в другом код верхней части страницы, в третьем - нижней. А посетитель видет обычную страницу, которая состоит из того кода, который входит в ваши кусочки.
Необходимы обязательные установки в httpd.conf:
В блоке, начинающемся с и заканчивающийся в строку Options Indexes добавьте Includes.
После, в файле .htaccess пишем:
AddHandler server-parsed .shtml .shtm .html .htm
Обработка в html-документах php-кода
Иногда бывает полезно "обмануть" посетителя, выдавая ему свои php-скрипты или иные файлы, как html файлы. Реально используется для индексации поисковой системой Rambler php-скриптов. Некоторые делаю мелкие фишки, вроде того, что дают файлам расширения совпадающие с какими-либо "знаковыми" именами. Например, на сайте http://www.wmaster.ru/WIND98/T ... sg.ru используются файлы с расширением osg: index.osg, script.osg и т.п.
RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html .phtml
При большой посещаемости сервера может вызвать тормоза. Спрашивайте у админа.
Замена стандартных сообщений об ошибках сервера с помощью файла .htaccess
Наиболее интересные и полезные ошибки Апача это: 403-404, 500.
403 - пользователь не прошел аутентификацию, запрет на доступ (Forbided).
404 - запрашиваемый документ (файл, директория) не найден.
500 - внутренняя ошибка сервера (к примеру, ошибка в синтаксисе файла .htaccess).
Для того, что бы пользователю при этих ошибках были показаны ваши собственные сообщения об ошибках, в .htaccess пишем:
ErrorDocument 403 /errors/403.html
ErrorDocument 404 /errors/404.html
ErrorDocument 500 /errors/500.html
При этом при возникновении 404 ошибки пользователю загрузится файл errors/403.html.
Удобно делать собственный обработчик на некоторые ошибки. В .htaccess пишем:
ErrorDocument 403 /errors/error.php?403
ErrorDocument 404 /errors/error.php?404

ErrorDocument 500 /errors/error.php?500
В error.php через $HTTP_SERVER_VARS['REQUEST_URI'] определяем какой документ вызвал ошибку и дальше обрабатываем. Если в .htaccess на ErrorDocument стоит указание файла с полным путем (http://site.ru/error.php), то $HTTP_SERVER_VARS['REQUEST_URI'] будет содержать этот файл, а не вызвавший ошибку.
Величина страницы с ошибкой должна быть больше 511 байтов, иначе Internet Explorer может показать собственную страницу с описанием ошибки..
Больше информации о кодах ошибки http сервера можно посмотреть на «Коды ошибки http сервера»
Замена стандартных сообщений об ошибках сервера позволяет нормальным языком обьяснить посетителю что произошло. Примеры страниц для замены ошибок http сервера вы можете посмотреть в каталоге ошибок http сервера
Запрет просмотра
LYCUK LYCUK [Off] [#] (23.12.2009 / 11:09)
каталога с помощью файла .htaccess
Предположим, что у вас вся графика, используемая на сайте находится в директории img. Посетитель может набрать в адресной строке браузера эту директорию и увидеть список всех ваших графических файлов. Конечно, это не нанесет вам урона, но можно и не дать такого просмотра посетителю. В .htaccess пишем:
Options -Indexes
И наоборот, вы можете разрешить просмотр каталога, встроив его в стандартный интерфейс сайта директивой
Options +Indexes
Смотрите пример, как может выглядеть каталог примеров, использующихся основными страинцами сайта (возможно пример с сайта bosportour.com будет более очевидным). Описание директив для подобного отображения каталогов планируется поместить в полную докумнтацию по файлу .htaccess.
Определение кодировки по умолчанию с помощью файла .htaccess
На заре интернета и зарождения браузеров, часто была ситуация, что браузер не мог автоматически определить, в какой из русских кодировок написан документ и в браузер выдавалась какая-то каша. Для избежания этого указываем, что все отдаваемые страницы будут иметь кодировку windows-1251:
AddDefaultCharset windows-1251

Определение кодировки на загружаемые файлы с помощью файла .htaccess
При загрузке посетителем файла на сервер, возможна перекодировка его - указываем, что все получаемые файлы будут иметь кодировку windows-1251:
CharsetSourceEnc windows-1251
Вероятные ошибки в файле .htaccess
Создал файл .htaccess, но сервер выдает 500 ошибку - Internal Erorr Ошибка синтаксиса или файл записан не в том формате.
Смотрите синтаксис .htaccess.
Просмотрите файл error.log в корне своего сайта (если он там есть). Например строка:
[Tue Dec 20 02:29:10 2005] [alert] [client 127.0.0.1] w:/home/h15.ru/bospor/.htaccess: CustomLog not allowed here
Указывает на ошибку вфайле w:/home/h15.ru/bospor/.htaccess (http://bospor.h15.ru/.htaccess): Директива CustomLog не допустима здесь.
Seq)I(b)i( Seq)I(b)i( [Off] [#] (23.12.2009 / 11:13)
Афтырь,прекращай клеем увлекаццо
---
http://htaccess.net.ru/
xommos xommos [Off] [#] (23.12.2009 / 11:15)
Помоему это бензин
ДоХтор ДоХтор [Off] [#] (11.04.2010 / 20:43)
старый статус уже зоебалъ
xommos (23.12.2009/14:15)
Помоему это бензин
а по-моему, весьма полезная инфа. пол года назад один обиженный мной ламер, от безысходности, начал срать в гостевой, а в баню его вкинуть было невозможно, так как у него был ай-пи вида 255.1.1.1 (цифры могу и перепутать,т.к. небыло цели их запоминать) Если бы тогда мне попалась эта статья, то можно было бы перенаправить айпишник этого клоуна на собственную страницу с текстом лично для него(типа 'пашшол нах иблан',или ещё чё нить подобное)
Log!N Log!N [Off] [#] (11.04.2010 / 21:33)
Последний Дино3@вр
Директива 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
Изм. Log!N (11.04.2010 / 21:34) [1]
Оптимус Прайм Оптимус Прайм [Off] [#] (11.04.2010 / 21:40)
How I Met yor Mother
Log!N (12.04.2010/01:33)
Директива RedirectОписание: Выполняет редирект посетителя, запрашивающего документ на другой URL. Выполняет внешний редирект (сообщая браузеру о необходимости загрузить другой URL).Синтаксис: Redirect
чет глянул на сайте у тебя одмин лиличка. ник женский, пол в анкете женский, а на фото бородатый такой мужыг
в чом прикол?
Log!N Log!N [Off] [#] (11.04.2010 / 22:15)
Последний Дино3@вр
Не там смотрел..ггг
Вот её фото ,
там же ещё есть
Log!N Log!N [Off] [#] (11.04.2010 / 22:23)
Последний Дино3@вр
У неё недавно дочька родилась
:ляля:
  Всего: 9

Фильтр по автору
Скачать тему

Форум

Новые вверху
0 / 250

Gazenwagen Gegenkulturelle Gemeinschaft