1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.

Redirect и его feature

Тема в разделе "Интернет", создана пользователем MAKC, 05.04.02.

  1. MAKC

    MAKC Гость

    Есть Apache 1.3.23 для Win32. В руководствах по Apache по поводу redirect’ов приводят самые бесполезные примеры вроде:
    Redirect permanent /uri/ http://www.server.ru/another_uri/

    Работает безотказно, если только не переправлять запрос вглубь той же папки:
    Redirect permanent /uri/ http://www.server.ru/uri/another_uri/

    Apache находит кусок /uri/ и заменяет его на /uri/another_uri/, выполняет проверку ещё раз и повторяет замену. Это происходит до переполнения переменной запроса, выглядящего в итоге примерно так:
     http://www.server.ru/uri/another_uri/another_uri/another_uri/another_uri/another_uri/...

    Можно ли вообще справиться директивой “Redirect” в таком случае? Если нет, что дальше? RedirectMatch? mod_rewrite?
     
  2. OEM

    OEM Почётный

    2.957
    1
    Кстати, Apache уже стал версии 2 - Release. Может, стоит сразу с ним ковыряться, говорят, отличается от единички более понятной настройкой и опциями.
     
  3. MAKC

    MAKC Гость

    Задачу надо решать средствами, находящимися в наличии. Хостеры не станут обновлять веб-сервер ;)
     
  4. OEM

    OEM Почётный

    2.957
    1
    А что, у хостеров нынче в почете Win32? :D
     
  5. MAKC

    MAKC Гость

    Нет, конечно. Я говорил об Apache 1.3, который установлен и у хостеров, и у меня. А платформы у нас разные ;)
     
  6. MAKC

    MAKC Гость

    Оказалось, всё очень просто. По крайней мере, это работает на Apache 1.3.23 для Win32.
    Синтаксис таков:
    Redirect [status] URL-path URL

    Чтобы не происходило выше указанных коллизий, необходимо в URL-path указывать имя документа, даже если он автоматически вызывается по указанию пути при обычном запросе. Если URL-path означен как /uri/index.html и придёт запрос на страницу /uri/ или /uri/index.html, в любом случае будет сделано перенаправление на URL. То есть, URL можно означить как угодно, хоть  http://www.server.ru/uri/another_uri/, хоть  http://www.server.ru/uri/another_uri/index.html. Лично мне больше импонирует первый вариант. Я не люблю, когда имя конечного документа видно в адресной строке.