Псевдостатика через MOD_ReWrite

DizeL

Новичок
Псевдостатика через MOD_ReWrite

Всем доброго времени...
Посмотрел по поиску, все сюда пишут вопросы по этому модулю...

Вопрос следующий.
Написали свою CMS.
Работает так, что все запросы идут на index.php, где он подгрудает нужный модуль обработки и вызывает нужный шаблон SMARTY.

Заказчик попросил сделать прсевдостатику, причём так, чтоб все страницы с его оригинального сайта сохранились (PR 3 у него там...)

В общем, проблема такая:
Обычные страницы вызываеются таким запросом - /?page=<название страницы>
Есть раздел СТАТЬИ, которые вызываются - /?page=articles&id=<код статьи, или название страницы>
Так вот, мне надо написать следующие в .htaccess:
При обращении адреса "<A-Za-z0-9+>.html" проверялось, существует ли URL - ?page=<название страницы>.
Если не существует (а мой индекс возвращает ошибку 404 при этом), то пробует запрос вида /?page=articles&id=<код статьи, или название страницы>.
С этим модулем я не имею большого опрыта работы, могу делать только простые вещи.
Но вот что придумал по примерам и справочникам:
PHP:
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteRule ^.htaccess$ - [F]
#Проверяю, существует ли такой URL
RewriteCond   ^(.*)$ -U
# Если да, то обращается по такому запросу и прерываем
RewriteRule ^([A-Za-z0-9]+).html$ ?page=$1 [L]
# Если предыдущее условие не выполнилось, обращаемся сюда.
RewriteRule ^([A-Za-z0-9]+).html$ ?page=article&id=$1 [L]
# Это уже не важно, проверил, работает нормально...
RewriteRule ^news-([A-Za-z0-9]+).html$ ?page=news&p=$1 [L]
RewriteRule ^news-([A-Za-z0-9]+)-([A-Za-z0-9]+).html$ ?page=read_news&news_id=$1&p=$2 [L]
Как я написал, нижняя часть работает нормально, а вот верхняя - не совсем.
По справочнику я проверил, что "-F" проверяем наличие файла непосредственно на сервере с таким названием.
А "-U" проверяет работоспособность URL. Правда, я не до конца уверен, что я правильно понял назначение этого флага.

Пожалуйста, кто сталкивался, или есть какие-то мысли, подскажите как сделать правильно.

Жду ответа.
Заранее, спасибо.
 

WP

^_^
Советую все запросы направлять в скрипт, а там уже ими рулить (кроме запросов к статике вроде картинок).
 

DizeL

Новичок
Автор оригинала: WP
Советую все запросы направлять в скрипт, а там уже ими рулить (кроме запросов к статике вроде картинок).
Ну а через .htaccess никак нельзя?
Не очень хочется в скриптах копаться.
Я тут уже более или менее разобрался.

-~{}~ 20.01.08 17:38:

Автор оригинала: WP
Советую все запросы направлять в скрипт, а там уже ими рулить (кроме запросов к статике вроде картинок).
Кстати, на всякий случай, на счёт скриптовой обработки.
Посылаю через .htaccess в скрипт, там обрабатываю запрос.
Это я видел как делается.
А как мне возвратить браузеру какой URL отобразить?
Какой функцией это делать?
 

Духовность™

Продвинутый новичок
Советую все запросы направлять в скрипт
именно. все запросы должны идти в скрипт. mod_rerite в подобных ситуациях в идеале ничего не должен другого делать, кроме как

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule (.*) index.php?path=/$1&%{QUERY_STRING}
 

WP

^_^
triumvirat
> RewriteRule (.*) index.php?path=/$1&%{QUERY_STRING}
Дирол/Орбит?
DizeL
RewriteRule .* main.php и парси $_SERVER['REQUEST_URI']
 

DizeL

Новичок
Автор оригинала: WP
triumvirat
> RewriteRule (.*) index.php?path=/$1&%{QUERY_STRING}
Дирол/Орбит?
DizeL
RewriteRule .* main.php и парси $_SERVER['REQUEST_URI']
Спасибо за совет.
Сделал так.
PHP:
# Включаем возможности mod_rewrite
RewriteEngine On
# Создаем правила для разделов
RewriteRule ^(.*)$ index.php [L,QSA]
Только вопрос, у меня запросы ко всем каталогам теперь будут пересылаться на index или только к корню?
ВОт у меня админка находится по адресу: URL/cp/index.php.
У меня сложилось такое впечатление, что оттуда запросы тоже полетели на корневой индекс. :)
Если это так, то как сделать правило, чтоб только корневые запросы переходили на индекс, а остальные по старинке?

Заранее, спасибо.
 
Сверху