Редирект в .htaccess

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

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

    jID Постоялец

    Регистр.:
    12 фев 2008
    Сообщения:
    106
    Симпатии:
    31
    В браузере запрос:
    http://site/someurl/

    Задача:
    Если в папке /somedir/ есть индексный файл index.html ненулевого размера, то редиректить на него, в остальных случаях - в ядро - обработчик core.php.

    Вот текущий .htaccess:
    Код:
    #включаем мод_реврайт
    Options +FollowSymLinks
    RewriteEngine on
    
    # насильно редиректим на www
    RewriteCond %{HTTP_HOST} ^site.ru
    RewriteRule ^(.*)$ http://www.site.ru/$1 [R=permanent,L]
    
    # Прописываем корень
    RewriteBase /
    
    # Режем доступ к .htaccess
    RewriteRule ^.htaccess$ - [F]
    
    # То что мне надо (но не работает)
    RewriteCond %{REQUEST_URI} ^somedir$
    RewriteCond /somedir/index.html !-s
    RewriteRule ^(.*)$ /somedir/index.html [R=permanent]
    
    # Главное правило (движок сайта)
    RewriteCond %{REQUEST_FILENAME} !-s
    RewriteRule ^(.+)$ /core.php?$1
    Сейчас тупо игнорирует нужное мне правило:
    Код:
    RewriteCond %{REQUEST_URI} ^somedir$
    RewriteCond /somedir/index.html -s
    RewriteRule ^(.*)$ /somedir/index.html [R=permanent]
    Собственно... Очень надо...
     
  2. max-oligarh

    max-oligarh Постоялец

    Регистр.:
    4 май 2009
    Сообщения:
    68
    Симпатии:
    2
    используй -f
     
  3. jID

    jID Постоялец

    Регистр.:
    12 фев 2008
    Сообщения:
    106
    Симпатии:
    31
    не прокатило.

    Внимательно читал документацию:
    http://htaccess.net.ru/doc/mod_rewrite/RewriteCond.php

    -f -s и т.п. не причём... Дело в том, что приведённый кусок кода просто не работает... апач пропускает его "мимо ушей"...
     
  4. BDSG

    BDSG

    Регистр.:
    28 фев 2009
    Сообщения:
    203
    Симпатии:
    109
    # отдаем директорию, если есть
    RewriteCond %{REQUEST_FILENAME} !-d

    # отдаем файл, если есть
    RewriteCond %{REQUEST_FILENAME} !-f

    # все остальное сливаем на index.php
    RewriteRule ^(.*)$ index.php [L,QSA]
     
  5. jID

    jID Постоялец

    Регистр.:
    12 фев 2008
    Сообщения:
    106
    Симпатии:
    31
    Вроде частично заработало, но что теперь делать с папками?
    показывает файлы в папках... Хотелось бы содержимое папок было скрыто...
     
  6. jID

    jID Постоялец

    Регистр.:
    12 фев 2008
    Сообщения:
    106
    Симпатии:
    31
    Всем спасибо за советы. Долго колупал и вот как решил сабж:

    Код:
    RewriteCond %{REQUEST_URI} ^(.?)somedir(.?)$ 
    RewriteCond /somedir/index.html !-s 
    RewriteRule ^(.*)$ /somedir/index.html [L] 
    
    # main rule
    RewriteCond %{REQUEST_FILENAME} !-s
    RewriteRule ^(.*)$ core.php [L,QSA]
    
    Тему можно закрывать.
     
  7. BDSG

    BDSG

    Регистр.:
    28 фев 2009
    Сообщения:
    203
    Симпатии:
    109
    просто добавь в htaccess
    Код:
    Options -Indexes
     
Статус темы:
Закрыта.