mod_rewrite помогите написать правило

vanka

Новичок
mod_rewrite помогите написать правило

Наверное тема порядком надоела, но тем не менее нужна помощь, сам до конца не могу разобраться.

В общем, задача следующая:

1. Написать правило которое бы преобразовывало URL вида http://<hostname>/<site_dir> в http://<hostname>/router.php?path=<site_dir>
При этом правило должно работать только для каталогов, а если с сервера запрашивается реально существующий файл, то отдавать его без изменения URL

сейчас я пользуюсь таким правилом:
PHP:
RewriteBase /
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILE} !-f
RewriteCond %{REQUEST_URI} !\.([^\./]+)
RewriteRule (.*)$ router.php?path=%{REQUEST_URI} [QSA]
Оно делает то, что мне нужно, но я не уверен, что это оптимальное решение.

2. Можно ли написать правило и если да то какое чтобы преобразовать запрос вида http://<hostname1>/<site_dir1> в http://<hostname2>/<site_dir2>/<site_dir1> ?


Заранее спасибо!
 

vanka

Новичок
Спасибо, читаю.

-~{}~ 25.02.07 14:38:

И все-таки не получается то чего бы мне хотелось.

если я ставлю следующее правило на <hostname1>
PHP:
RewriteRule (.*) http://<hostname2>/<site_dir2>/$1
то происходит редирект
т.е. написав в строке браузера
http://<hostname1>/<site_dir1> меня перебрасывает на http://<hostname2>/<site_dir2>/<site_dir1>

я действительно хочу получить то, что сервер выдаст по запросу http://<hostname2>/<site_dir2>/<site_dir1>, но мне нужно чтобы при этом в строке браузера оставалось http://<hostname1>/<site_dir1>

Посоветуйте как это сделать.
 

baev

‹°°¬•
Команда форума
сервер выдаст по запросу http://<hostname2>/<site_dir2>/<site_dir1>, но мне нужно чтобы при этом в строке браузера оставалось http://<hostname1>/<site_dir1>
Зачем Вам это нужно?
mod_rewrite в этом не поможет
 

vanka

Новичок
Нужно для SEO. Есть сайт на котором есть раздел - магазин. И этот раздел надо повесить на отдельный домен.

Конечно можно сделать 2 отдельных сайта, но это не красивое решение. Я думал mod_rewrite может это сделать.

Проблема в том что домены разные ? Ведь в пределах одного домена я могу эмулировать каталоги и т.п.
 

vanka

Новичок
У меня есть дерево сайта в котором хранится структура разделов. У раздела есть id и имя каталога (виртуального) в URL.

Возьмем к примеру раздел "О компании". У него имя каталога "about".
Соот. URL этого раздела будет http://<hostname>/about

Дальше через RewriteRule я преобразую URL http://<hostname>/about в http://<hostname>/router.php?path=/about

router.php парсит $_GET['path'] и выводит соот. раздел сайта

При этом реального каталога "about" на сервере нет, а в адресной строке у нас остается http://<hostname>/about

-~{}~ 10.03.07 18:36:

Т.е. то что я хотел бы сделать в принципе невозможно ?
 
Сверху