Редирект в .htaccess

Статус
В этой теме нельзя размещать новые ответы.

jID

Постоялец
Регистрация
12 Фев 2008
Сообщения
106
Реакции
31
В браузере запрос:


Задача:
Если в папке /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]

Собственно... Очень надо...
 
не прокатило.

Внимательно читал документацию:


-f -s и т.п. не причём... Дело в том, что приведённый кусок кода просто не работает... апач пропускает его "мимо ушей"...
 
# отдаем директорию, если есть
RewriteCond %{REQUEST_FILENAME} !-d

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

# все остальное сливаем на index.php
RewriteRule ^(.*)$ index.php [L,QSA]
 
# отдаем директорию, если есть
RewriteCond %{REQUEST_FILENAME} !-d
# отдаем файл, если есть
RewriteCond %{REQUEST_FILENAME} !-f
# все остальное сливаем на index.php
RewriteRule ^(.*)$ index.php [L,QSA]
Вроде частично заработало, но что теперь делать с папками?
показывает файлы в папках... Хотелось бы содержимое папок было скрыто...
 
Всем спасибо за советы. Долго колупал и вот как решил сабж:

Код:
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]

Тему можно закрывать.
 
но что теперь делать с папками?
показывает файлы в папках... Хотелось бы содержимое папок было скрыто...
просто добавь в htaccess
Код:
Options -Indexes
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху