помогите написать .htaccess

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

Статус темы:
Закрыта.
  1. krobol

    krobol

    Регистр.:
    6 июн 2008
    Сообщения:
    455
    Симпатии:
    126
    Сейчас .htaccess выглядит так:
    Код:
    1. RewriteEngine On
    2. RewriteBase /
    3. RewriteCond %{HTTP_HOST} !mysite.ru
    4. RewriteRule robots.txt robots-old.txt [L]
    5. RewriteRule robots.txt robots-new.txt
    6. RewriteCond %{REQUEST_FILENAME} !-f
    7. RewriteCond %{REQUEST_FILENAME} !-d
    8. RewriteCond %{REQUEST_FILENAME} !-l
    9. RewriteRule ^(.*)$ i.php?c=$1 [L]
    
    он не работает, как нужно.

    Идея такая:
    - строки 3-5 отвечают за отдачу нужного robots.txt. Если robot.txt запросили с домена mysite.ru, то отдаётся robots-new.txt. В остальных случаях robots-old.txt.
    Отдельно, строки 1-5 работают нормально.

    Теперь мне нужно ещё сделать так, что если запрашивается файл .htm, .html и он существует, то управление передаётся скрипту i.php с параметром c=<имя запрашиваемой страницы .htm, .html>

    Помогите реализовать эту идею.

    -----
    сделал так
    Код:
    1. RewriteEngine On
    2. RewriteBase /
    3. RewriteCond %{HTTP_HOST} !mysite.ru
    4. RewriteRule robots.txt robots-old.txt [L]
    5. RewriteRule robots.txt robots-new.txt
    6. RewriteCond %{REQUEST_FILENAME} -f
    9. RewriteRule ^(.*)$ i.php?c=$1 [QSA]
    
    не работают robots.txt
     
  2. Murdok

    Murdok

    Регистр.:
    1 окт 2006
    Сообщения:
    236
    Симпатии:
    84
    У меня так все работает, а у вас не отдается роботс потому что для него срабатывает последнее правило:)
    Код:
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^(.*).(htm|html)$ i.php?c=$1.$2
    RewriteCond %{HTTP_HOST} !localhost
    RewriteRule robots.txt robots-old.txt
    RewriteRule robots.txt robots-new.txt
    
     
Статус темы:
Закрыта.