За последние 24 часа нас посетили 56792 программиста и 1750 роботов. Сейчас ищут 813 программистов ...

Редирект в .htaccess

Тема в разделе "Прочие вопросы по PHP", создана пользователем splashcoder, 3 апр 2010.

  1. splashcoder

    splashcoder Активный пользователь

    С нами с:
    31 дек 2008
    Сообщения:
    14
    Симпатии:
    0
    Здравствуйте.
    Есть сайт, используется mod_rewrite, можно ли с пом. инструкций в файле .htaccess сделать так чтобы при переходе по url www.site.ru/cat/12.html сначала искалась страница 12.html в папке cat, а если её нет, то выполнялся редирект по правилам RewriteRule?

    В мануале есть про условия проверки существования файлов, но не пашет:
    RewriteCond %{REQUEST_URI} !-f
    RewriteRule ^cat/([\w\d-_]+)\.html$ index.php?menu=cat&page=$1
    флаги -s -l тоже не дают результата...

    Что-то здесь пишу не так? Или есть другой способ?
     
  2. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    Код (Text):
    1. RewriteEngine On
    2. RewriteBase /
    3.  
    4. RewriteCond %{REQUEST_FILENAME} !-f
    5. RewriteCond %{REQUEST_FILENAME} !-d
    6.  
    7. RewriteRule ^cat/([\w\d-_]+)\.html$ index.php?menu=cat&page=$1  [L]
     
  3. splashcoder

    splashcoder Активный пользователь

    С нами с:
    31 дек 2008
    Сообщения:
    14
    Симпатии:
    0
    Спасибо большое!
    Дело было в REQUEST_FILENAME вместо REQUEST_URI
    Конструкция работает даже так (без флага -d и без [L]):
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^cat/([\w\d-_]+)\.html$ index.php?menu=cat&page=$1

    [L] применить не могу так как дальше тоже есть преобразования.