Помогите сделать реврайт с условием

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем dandandan, 29 мар 2011.

  1. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    975
    Симпатии:
    255
    Есть 2 адреса: сайт/zaza.php и сайт/goga/

    Нужно:
    1. При за ходе на сайт/goga/ показывалась страничка с сайт/zaza.php
    2. При за ходе по адресу сайт/zaza.php производился 301 редерикт на сайт/goga/ и выполнялся первый пункт.

    Можно ли эти 2 правила совместить с помощью mod-rewrite? Если можно, то как?
     
  2. ShoxMaster

    ShoxMaster

    Регистр.:
    3 дек 2008
    Сообщения:
    393
    Симпатии:
    150
    Через один только .htaccess это сделать не получится, нужно ещё модифицировать код zaza.php.
    В .htaccess записать:
    Код:
    RewriteEngine on
    RewriteRule goga/?$ /zaza.php [L]
    
    При запросе адреса /goga будет выводить страницу zaza.php. Но если запрошена страница zaza.php, нужно делать редирект в php-коде, потому-что апач будет делать цикл редиректов, изза того, что к странице zaza.php будет запрос со страницы goga, которая делает запрос к странице zaza.php, и так до бесконечности.
    PHP:
    <?php
    if($_SERVER['REQUEST_URI']=="/zaza.php")
    {
        
    header ('HTTP/1.1 301 Moved Permanently');
        
    header ('Location: /goga/');
      }
    ?>
    Если всё таки запрошена страница zaza.php, то будет происходить 301-й редирект на страницу /goga.
     
    dandandan нравится это.
  3. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    975
    Симпатии:
    255
    C такой комбинацией все получилось. Жаль, что только с помощью .htaccess нельзя разрулить