mod_rewrite редиректы

igor_ua

Новичок
mod_rewrite редиректы

1) Есть сайт (например)
http://shop.magazine.ru/

2) На сайте есть папка
http://shop.magazine.ru/mobile/

3) есть саб. домен (ссылается в туда же, что и домен http://shop.magazine.ru/ - т.е. синонимы по сути)
http://mobile.magazine.ru/

Задача 1:
Мы находимся на сайте http://shop.magazine.ru/
Заходим в папку http://shop.magazine.ru/mobile/ и должны автоматом перекинуться на сайт
http://mobile.magazine.ru/
НО т.к. это по сути один и тот же сайт, то и остаться должны мы в папке /mobile т.е.
Зашли сюда
http://shop.magazine.ru/mobile/
Попали в
http://mobile.magazine.ru/mobile/

Задача 2:
Мы находимся на сайте
http://mobile.magazine.ru/mobile/ (т.е. в папке /mobile/)
Как только выходим из папки /mobile/ на уровень выше, то должны быть перенаправлены на сайт
http://shop.magazine.ru/
Например:
Были тут
http://mobile.magazine.ru/mobile/
Перешли в папку
http://mobile.magazine.ru/about/
Попали
http://shop.magazine.ru/about/

Пишу такое правило:
RewriteCond %{HTTP_HOST} ^ shop\.magazine\.ru [NC] # На сколько я понимаю. Проверяем, что домен shop.magazine.ru
RewriteCond %{REQUEST_FILENAME} ^/mobile(/|$) # Далее проверяем, находимся ли мы в папке /mobile/
RewriteRule ^(.*)$ http://mobile.magazine.ru/$1 [L] # Если все выше верно, то редиректимся на http://mobile.magazine.ru/
Я видимо где-то ошибаюсь, или не так понимаю правила.

Подскажите пожалуйста.

Спасибо!
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
1. В подстановке екранированние не нужно.
2.
RewriteCond %{REQUEST_FILENAME} ^/mobile(/|$) # Далее проверяем, __находимся ли мы в папке__ /mobile/
а) "в папке" проверяется не так.
б) В подскановке, в кармане что это?

-~{}~ 01.10.08 13:52:

3.
RewriteRule ^(.*)$ http://mobile.magazine.ru/$1 [L] # Если все выше верно, то ___редиректимся__ на http://mobile.magazine.ru/
Укажи, пожалуйста, в правиле на флаг редиректа
 

igor_ua

Новичок
Спасибо!

вот так вот получилось, вроде бы
RewriteCond %{HTTP_HOST} ^shop.magazine.ru$ [NC] # NC - без учета регистра
RewriteCond %{REQUEST_URI} ^/mobile(/|$) # REQUEST_URI - на сколько понял, для папки подойдет
RewriteRule ^(.*)$ http://mobile.magazine.ru/$1 [L,R] # R - редирект, L - последнее условие
-~{}~ 01.10.08 14:00:

И решение второй задачи (когда поднимаемся на уровень выше)
RewriteCond %{HTTP_HOST} !^shop.magazine.ru$ [NC]
RewriteCond %{REQUEST_URI} !^/mobile(/|$)
RewriteRule ^(.*)$ http://shop.magazine.ru/$1 [L,R]
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
RewriteCond %{REQUEST_URI} ^/mobile(/|$) # REQUEST_URI - на сколько понял, для папки подойдет
RewriteCond %{REQUEST_URI} ^/mobile/?$
RewriteCond %{REQUEST_URI} -d
 
Сверху