/page/1 в /page/kluchevik/

Статус
В этой теме нельзя размещать новые ответы.
Похоже что никак. Переадрессацию между разными доменами можно делать только с 301м редиректом, т.е. с заменой адреса в строке браузера.
Хотя, попробуйте:
RewriteCond %{HTTP_HOST} !^www\.site\.com$
RewriteCond %{HTTP_HOST} (www\.)?([^.]+)\.site\.com$
RewriteRule ^(.*)$ /firm/%2/ [L,QSA]

если у тебя все поддомены припаркованы на основной домен, то должно сработать.
 
выпадает internal server error.
Пробывал поизвращаться по разному с вашим кодом но результат один(
Сам уже думал что сделать не получится так совсем, но
Для просмотра ссылки Войди или Зарегистрируйся работает же, и очень похоже что именно так как я хочу.
 
Что-то не пойму где на предложенном вами сайте подобный функционал.

Кстати, может быть попробовать вот так:
Код:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.site\.com$
RewriteCond %{HTTP_HOST} (www\.)?([^.]+)\.site\.com$
RewriteRule ^(.*)$ /firm/%2/$1 [L,QSA]

А если сейчас, без этого правила, запросить несколько поддоменов, то покажется site.com? Или они показывают что-то свое?
 
И что, последний код не работает? Что пишет в rewrite.log?
 
локально в денвере нашел как настроить rewrite.log, а вот на VDS, где и работает * cname правильный там я не могу докопаться до httpd.conf.
Написал в службу поддержки, как докопаюсь обязательно отпишусь что пишет rewrite log.

Добавлено через 48 минут
Пробую набрать price.site.com и вываливается вот что:

22.12.57.11 - - [27/Nov/2009:17:54:31 +0200] [price.site.com/sid#81697b0][rid#82fa058/initial] (1) [perdir /home/site/data/www/site.com/] internal redirect with /firm/price/ [INTERNAL REDIRECT]
22.12.57.11 - - [27/Nov/2009:17:54:31 +0200] [price.site.com/sid#81697b0][rid#82f73f8/initial/redir#1] (1) [perdir /home/site/data/www/site.com/] internal redirect with /firm/price/firm/price/ [INTERNAL REDIRECT]
22.12.57.11 - - [27/Nov/2009:17:54:31 +0200] [price.site.com/sid#81697b0][rid#82f1670/initial/redir#2] (1) [perdir /home/site/data/www/site.com/] internal redirect with /firm/price/firm/price/firm/price/ [INTERNAL REDIRECT]
22.12.57.11 - - [27/Nov/2009:17:54:31 +0200] [price.site.com/sid#81697b0][rid#82f2928/initial/redir#3] (1) [perdir /home/site/data/www/site.com/] internal redirect with /firm/price/firm/price/firm/price/firm/price/ [INTERNAL REDIRECT]
22.12.57.11 - - [27/Nov/2009:17:54:31 +0200] [price.site.com/sid#81697b0][rid#8316d00/initial/redir#4] (1) [perdir /home/site/data/www/site.com/] internal redirect with /firm/price/firm/price/firm/price/firm/price/firm/price/ [INTERNAL REDIRECT]
22.12.57.11 - - [27/Nov/2009:17:54:31 +0200] [price.site.com/sid#81697b0][rid#82fc1a8/initial/redir#5] (1) [perdir /home/site/data/www/site.com/] internal redirect with /firm/price/firm/price/firm/price/firm/price/firm/price/firm/price/ [INTERNAL REDIRECT]
22.12.57.11 - - [27/Nov/2009:17:54:31 +0200] [price.site.com/sid#81697b0][rid#82fd680/initial/redir#6] (1) [perdir /home/site/data/www/site.com/] internal redirect with /firm/price/firm/price/firm/price/firm/price/firm/price/firm/price/firm/price/ [INTERNAL REDIRECT]
22.12.57.11 - - [27/Nov/2009:17:54:31 +0200] [price.site.com/sid#81697b0][rid#82f8be0/initial/redir#7] (1) [perdir /home/site/data/www/site.com/] internal redirect with /firm/price/firm/price/firm/price/firm/price/firm/price/firm/price/firm/price/firm/price/ [INTERNAL REDIRECT]
22.12.57.11 - - [27/Nov/2009:17:54:31 +0200] [price.site.com/sid#81697b0][rid#83192c0/initial/redir#8] (1) [perdir /home/site/data/www/site.com/] internal redirect with /firm/price/firm/price/firm/price/firm/price/firm/price/firm/price/firm/price/firm/price/firm/price/ [INTERNAL REDIRECT]
22.12.57.11 - - [27/Nov/2009:17:54:31 +0200] [price.site.com/sid#81697b0][rid#831a9f8/initial/redir#9] (1) [perdir /home/site/data/www/site.com/] internal redirect with /firm/price/firm/price/firm/price/firm/price/firm/price/firm/price/firm/price/firm/price/firm/price/firm/price/ [INTERNAL REDIRECT]
22.12.57.11 - - [27/Nov/2009:17:54:31 +0200] [price.site.com/sid#81697b0][rid#831c2e0/initial/redir#10] (1) [perdir /home/site/data/www/site.com/] internal redirect with /firm/price/firm/price/firm/price/firm/price/firm/price/firm/price/firm/price/firm/price/firm/price/firm/price
/firm/price/ [INTERNAL REDIRECT]

как это можно исправить?
 
точно! забыли одно важное условие:
Код:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.site\.com$
RewriteCond %{HTTP_HOST} (www\.)?([^.]+)\.site\.com$
RewriteCond %{REQUEST_URI} !^/firm/
RewriteRule ^(.*)$ /firm/%2/$1 [L,QSA]

Так не должно входить в рекурсию. Попробуйте.
 
Спасибо, теперь не 500, a 404, а это уже лучше!

В логе вот что
22.12.57.11 - - [28/Nov/2009:09:24:56 +0200] [price.site.com/sid#81647b0][rid#830d058/initial] (1) [perdir /home/site/data/www/site.com/] internal redirect with /firm/price/ [INTERNAL REDIRECT]
22.12.57.11 - - [28/Nov/2009:09:24:56 +0200] [price.site.com/sid#81647b0][rid#82f34b8/initial/redir#1] (1) [perdir /home/site/data/www/site.com/] internal redirect with /index.php [INTERNAL REDIRECT]
22.12.57.11 - - [28/Nov/2009:09:24:56 +0200] [price.site.com/sid#81647b0][rid#831f118/initial/redir#2] (1) [perdir /home/site/data/www/site.com/] internal redirect with /firm/price/index.php [INTERNAL REDIRECT]
22.12.57.11 - - [28/Nov/2009:09:24:56 +0200] [price.site.com/sid#81647b0][rid#8309148/initial/redir#3] (1) [perdir /home/site/data/www/site.com/] pass through /home/site/data/www/site.com/firm
22.12.57.11 - - [28/Nov/2009:09:24:56 +0200] [price.site.com/sid#81647b0][rid#82fe228/initial/redir#4] (1) [perdir /home/site/data/www/site.com/] internal redirect with /firm/price/index.php [INTERNAL REDIRECT]
22.12.57.11 - - [28/Nov/2009:09:24:56 +0200] [price.site.com/sid#81647b0][rid#831c210/initial/redir#5] (1) [perdir /home/site/data/www/site.com/] pass through /home/site/data/www/site.com/firm

Т.е. я так понимаю он ищет именно папку.
Если просто набрать Для просмотра ссылки Войди или Зарегистрируйся то все работает гуд.
Правда без / в конце не работает
 
Немного подправил код:
Код:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^(www\.)?site\.com$
RewriteCond %{HTTP_HOST} (www\.)?([^.]+)\.site\.com$
RewriteCond %{REQUEST_URI} !^/firm
RewriteRule ^(.*)$ /firm/%2/$1 [L,QSA]

У меня работает, так как и задуманно. Если запрашиваю price.site.com то он запрашивает директорию /firm/price/ если в ней есть index.php то выведет его. Если запросить price.site.com/price.php то браузер выведет /firm/price/price.php если сменить поддомен на, скажем, some то все повторяется таким же образом. Причем все это рабоатет как с www так и без.

Если запрашивать напрямую папку /firm/ или /firm/price с любого поддомена первая будет выводить листинг директории (или 403) вторая выведет /firm/price/index.php но на любом хосте. Так что есть причины закрыть эти папки при прямом запросе.
Код:
RewriteCond %{HTTP_HOST} ^(www\.)?site\.com$
RewriteCond %{REQUEST_URI} ^/firm
RewriteRule ^(.*)$ - [F]
 
Спасибо вам огромное за ответы.
Остановились вот на каком коде, который работает почти как надо :)
Код:
RewriteCond %{HTTP_HOST} !^www\.site\.com$
RewriteCond %{HTTP_HOST} (www\.)?([^.]+)\.site\.com$
RewriteRule ^(.*)$ index.php?act=firm&id=%2 [L,QSA]
Единственное что происходит неправильно это подгрузка картинок, css и т.д. не происходит. Потому что если набрать abc.site.com то отображается правильный html, но если набрать abc.site.com/pics/1.jpg то отдается по этому адресу тот же html, т.е. фактически вышеприведенный код срабатывает при наборе любого Urla abc.site.com/asdfasdf/
Хотя в конце выражения стоит $ и по идеи так происходить не должно?
Пробывал добавить такое, чтобы главная поддомена грузилась по верхнему коду, а картинки css и т.д. грузилось нормально:
Код:
RewriteCond %{HTTP_HOST} (www\.)?([^.]+)\.site\.com
RewriteRule ^(.*)$ /$1 [L,QSA]
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху