.htaccess редирект

Тема в разделе "PHP", создана пользователем judex, 1 окт 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. judex

    judex

    Регистр.:
    23 дек 2006
    Сообщения:
    238
    Симпатии:
    72
    Всем привет!
    Помню что как-то можно было сделать чтобы всех, кто не добавлен в список разрешенных ИПов, редиректило на определенную страничку!
     
  2. Fridhelm

    Fridhelm Читатель

    Заблокирован
    Регистр.:
    15 авг 2009
    Сообщения:
    211
    Симпатии:
    13
    .htaccess задает права доступа к папке, разве возможено там прописать редирект ???
     
  3. judex

    judex

    Регистр.:
    23 дек 2006
    Сообщения:
    238
    Симпатии:
    72
    Конечно возможно. Делал так давно. Там было через mod_rewrite
     
  4. sserbin

    sserbin

    Регистр.:
    9 май 2008
    Сообщения:
    158
    Симпатии:
    22

    Хех, но кроме этого он может делать ЧПУ и еще много сладостей.


    Вот пригодиться.

    Редирект на другой 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
     
    fredis69 и phantom_nsd нравится это.
  5. sultan347

    sultan347

    Регистр.:
    25 апр 2009
    Сообщения:
    230
    Симпатии:
    7
    Странно, по твоему примеру добавил в хтаккес
    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
    
     
  6. Levitt

    Levitt

    Регистр.:
    20 май 2008
    Сообщения:
    358
    Симпатии:
    36
    Можно сделать редирект на 403 страницу.

     
  7. droncs

    droncs Постоялец

    Регистр.:
    12 сен 2008
    Сообщения:
    64
    Симпатии:
    0
    А как сделать чтобы открывался site2, но в адресной строке site1 ?
     
  8. IgorA100

    IgorA100 Постоялец

    Регистр.:
    3 янв 2009
    Сообщения:
    62
    Симпатии:
    31
    Долго думал, что Вы имели ввиду, но так и не понял....
     
  9. Disher

    Disher Постоялец

    Регистр.:
    25 июл 2009
    Сообщения:
    90
    Симпатии:
    8
    Ошибка синтаксиса или файл записан не в том формате.
     
  10. droncs

    droncs Постоялец

    Регистр.:
    12 сен 2008
    Сообщения:
    64
    Симпатии:
    0
    Допустим захожу на love.droncs.ru, а он открывает mamba.ru
     
Статус темы:
Закрыта.