.htaccess редирект

Статус
В этой теме нельзя размещать новые ответы.

judex

Гуру форума
Регистрация
23 Дек 2006
Сообщения
242
Реакции
77
Всем привет!
Помню что как-то можно было сделать чтобы всех, кто не добавлен в список разрешенных ИПов, редиректило на определенную страничку!
 
  • Заблокирован
  • #2
.htaccess задает права доступа к папке, разве возможено там прописать редирект ???
 
Конечно возможно. Делал так давно. Там было через mod_rewrite
 
.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
 
Странно, по твоему примеру добавил в хтаккес
CharsetSourceEnc utf-8
и сайт отказался работать
Код:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, webmaster@site.ru 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.
Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
_______________________________________
Apache/2 Server at site.ru Port 80
 
А как сделать чтобы открывался site2, но в адресной строке site1 ?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху