LINUX.ORG.RU

Реврайт - домен третьего уровня в директорию. Как?

 ,


0

1

Надо чтобы доступ к sub.domen.ru реварайтился скрыто в domen.ru/sub/.

Ну и сответственно и sub.domen.ru/блаблабла/ в domen.ru/sub/блаблабла/.

Делаю:

RewriteCond %{HTTP_HOST} ^sub\.domen\.ru$ [NC]
RewriteRule ^(.*)$ sub/$1 [QSA,PT,S=1]
Получаю:
mod_rewrite: maximum number of internal redirects reached. Assuming configuration error. Use 'RewriteOptions MaxRedirects' to increase the limit if neccessary.

Вобщем он много раз повторяет /sub/

P.S. Я думаю понятно, что условия усечены - отброшены фильтры обращения к картинками и т.п. - для краткости.

★★★★★

Ответ на: комментарий от backbone

Не - ну то конечно. Алиасы я создал. sub.domen.ru уже ведет туда же куда и domen.ru, но теперь мне надо чтобы sub.domen.ru вел не в / а в /sub/ то-есть аналогично domen.ru/sub/

Suntechnic ★★★★★
() автор топика
Ответ на: комментарий от Suntechnic

Не силён в теории, но эта фраза

You can use AliasMatch or RewriteRule to rewrite any request to a single information page (or script).

проповедует реврайты для отдельных страниц/скриптов, т. е. в крайних случаях.

В случае с sub.domen.ru надо делать так

<VirtualHost *:80>
DocumentRoot /domen.ru
ServerName domen.ru
</VirtualHost>

<VirtualHost *:80>
DocumentRoot /domen.ru/sub
ServerName sub.domen.ru
</VirtualHost>
Но могу ошибаться.

backbone ★★★★★
()
Ответ на: комментарий от backbone

Нет, ты все верно говоришь, наверно я не очень полно описал свою задачу. Так как ты пишешь у sub.domen.ru будет документрут /domen.ru/sub, а мне надо чтобы документрут остался тот же - /domen.ru.

Suntechnic ★★★★★
() автор топика
Ответ на: комментарий от Suntechnic

Тогда ссори, в реврайтах для Apache не силён, возможно ^ и $ в ^(.*)$ лишние.

backbone ★★★★★
()

Попробуй так, хотя не уверен что это скрыто проходит:

RewriteCond %{HTTP_HOST} !^(www|ftp|mail)\.example\.com
RewriteCond %{HTTP_HOST} ^([^.]+)\.example\.com
RewriteRule (.*) /%1/$1 [L]

gruy ★★★★★
()
Ответ на: комментарий от gruy

Ничем не отличается от того что я привел - только ты заменяешь явное указание регуляркой из условия.

Suntechnic ★★★★★
() автор топика

Блин, разобрался!

Вот как надо:

RewriteCond $1 !^sub/.*
RewriteCond %{HTTP_HOST} ^sub\.domen\.ru 
RewriteRule ^(.*)$ /sub/$1 [L]

Т.е. необходимо условие, которое не пропустит дальше когда реврайт уже произошел - домен-то тот же остается...

Suntechnic ★★★★★
() автор топика
Ответ на: комментарий от Suntechnic

Нет, ты все верно говоришь, наверно я не очень полно описал свою задачу. Так как ты пишешь у sub.domen.ru будет документрут /domen.ru/sub, а мне надо чтобы документрут остался тот же - /domen.ru.


по-моему это какой-то анальный онанизм железным ершиком для чистки бутылок.

можно историю успеха, зачем такой идиотизм вообще может пригодиться? я вот ничего не смог придумать.

какая тебе разница, какой у сабдомена документрут? это его документрут и никуда он больше не уходит.

BaBL ★★★★★
()
Ответ на: комментарий от BaBL

Мне ни какой - а битриксу какая. Это раздел на сайте и он должен быть доступен по субдомену, но быть разделом того же сайта.

Suntechnic ★★★★★
() автор топика
Ответ на: комментарий от Suntechnic

Мне ни какой - а битриксу какая. Это раздел на сайте и он должен быть доступен по субдомену, но быть разделом того же сайта.

в битриксе документрут давно уже не рекомендуется прописывать. Он на него даже в режиме проверки конфигурации ругается. Ему по большей части пофигу на количество поддоменов и прочего, в рамках одной лицензии сайта может успешно работать набор поддоменов с шаблонами и без, движок из одинаково успешно обслуживает.

BaBL ★★★★★
()
Ответ на: комментарий от BaBL

Хоть прописывай, хоть не прописывай, а он есть. И если у меня будет он в другой папке, то туда надо будет симлинками закидывать bitrix и *пр... Да и вообще путаница.

Suntechnic ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.