.htaccess задает права доступа к папке, разве возможено там прописать редирект ???
Хех, но кроме этого он может делать ЧПУ и еще много сладостей.
Вот пригодиться.
Редирект на другой url:
Что бы сделать перенаправления посетителя на сайт
Для просмотра ссылки Войди или Зарегистрируйся в .htaccess пишем:
Redirect /
Для просмотра ссылки Войди или Зарегистрируйся
--------------------------------------------------------------------------------
Показ разных страниц, в зависимости от 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
Для просмотра ссылки Войди или Зарегистрируйся
redirect /scripts
Для просмотра ссылки Войди или Зарегистрируйся
redirect /MSADC
Для просмотра ссылки Войди или Зарегистрируйся
redirect /c
Для просмотра ссылки Войди или Зарегистрируйся
redirect /d
Для просмотра ссылки Войди или Зарегистрируйся
redirect /_mem_bin
Для просмотра ссылки Войди или Зарегистрируйся
redirect /msadc
Для просмотра ссылки Войди или Зарегистрируйся
RedirectMatch (.*)cmd.exe$ http://www.microsoft.com$1
Как сделать стартовой другую страницу?
Что бы поменять страницу, которая будет показываться при обращении к директории, пишем:
DirectoryIndex <нужная страница>
Можно указывать несколько страниц.
DirectoryIndex index.shtml index.html index.html3 index.html index.htm
Как заставить Апач обрабатывать SSI директивы?
SSI позволяют "собирать" страницу из кусочков. В одном кусочке у вас код меню, в другом код верхней части страницы, в третьем - нижней. А посетитель видет обычную страницу, которая состоит из того кода, который входит в ваши кусочки.
Необходимы обязательные установки в httpd.conf:
В блоке, начинающемся с и заканчивающийся в строку Options Indexes добавьте Includes.
После, в файле .htaccess пишем:
AddHandler server-parsed .shtml .shtm .html .htm
Как заставить Апач выполнять php код в файлах с расширением отличным от php?
Иногда бывает полезно "обмануть" посетителя, выдавая ему свои php-скрипты или иные файлы, как html файлы. Реально используется для индексации поисковой системой Rambler php-скриптов.
Некоторые делаю мелкие фишки, вроде того, что дают фалам расширения совпадающие с какими-либо "знаковыми" именами. Например, на сайте
Для просмотра ссылки Войди или Зарегистрируйся используются файлы с расширением osg: index.osg, script.osg и т.п.
Такие возможности достигаются простым пересопоставлением обработчика файлов:
RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html .phtml
Заметьте, так как файлам с расширением .html и .htm сопоставлено, что это файлы с гипертекстовой разметкой, то мы первой строкой убираем это сопоставление и добавляем обработку таких файлов php интерпретатором.
Предположим, вы сменили платформу хостинга (NT to Unix), а у ваших посетителей остались точные закладки на ваши файлы. Тогда прописываем обработку .asp файлов, как php скриптов и уже в скрипте решаем, что делать с посетителем:
AddType application/x-httpd-php .php .asp
В отличие от примера выше, мы не пишем RemoveHandler ... , так как на Unix системах обычно с расширением .asp не сопоставлена ни одна программа.
При большой посещаемости сервера такие ухишрения могут вызвать тормоза. Спрашивайте у админа.
Как самому обрабатывать ошибки Апача?
Наиболее интересные и полезные ошибки Апача это: 401, 403-404, 500.
401 - Требуется авторизация (Authorization Required).
403 - пользователь не прошел аутентификацию, запрет на доступ (Forbided).
404 - запрашиваемый документ (файл, директория) не найден (Not Found).
500 - внутренняя ошибка сервера - к примеру, ошибка в синтаксисе файла .htaccess - (Internal Server Error).
Для того, что бы пользователю при этих ошибках были показаны ваши собственные сообщения об ошибках, в .htaccess пишем:
ErrorDocument 401 /errors/401.html
ErrorDocument 403 /errors/403.html
ErrorDocument 404 /errors/404.html
ErrorDocument 500 /errors/500.html
При этом при возникновении 401 ошибки пользователю загрузится файл errors/401.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_SERVER_VARS['REQUEST_URI'] будет содержать этот файл, а не вызвавший ошибку.
В Internet Explorer 5.0 неправильно обрабатывается файл, вызывающийся при ошибке, если его размер меньше 1 килобайта. Будет вызвана стандартная страница IE 404.
Как поставить запрет на отображение содержимого директории при отсутствии индексного файла?
Предположим, что у вас вся графика, используемая на сайте находится в директории img. Посетитель может набрать в адресной строке браузера эту директорию и увидеть список всех ваших графических файлов. Конечно, это не нанесет вам урона, но можно и не дать такого просмотра посетителю. В .htaccess пишем:
Options -Indexes
Можно ли указать кодировку на все файлы, в которой по умолчанию получает документы браузер?
На заре интернета и зарождения браузеров, часто была ситуация, что браузер не мог автоматически определить, в какой из русских кодировок написан документ и в браузер выдавалась какая-то каша. Для избежания этого указываем, что все отдаваемые страницы будут иметь кодировку windows-1251:
AddDefaultCharset windows-1251
Можно ли указать кодировку на загружаемые файлы?
При загрузке файла на сервер (не важно кем - админом или посетителем), возможна перекодировка его - указываем, что все получаемые файлы будут иметь кодировку windows-1251:
CharsetSourceEnc windows-1251
Как применять различные кодировки для различных типов файлов?
AddType "application/x-httpd-php3; charset=windows-1251" .html
AddType "application/x-httpd-php3; charset=koi-8r" .htm