Как в drupal 7 прописать в htaccess подмену url?

Главные вкладки

Аватар пользователя Skeptik Skeptik 30 июля 2013 в 14:46

Дано:
сайт1: site.com
сайт2: pda.site.com
Оба сайта пользуются одной базой данных. Соответственно, есть только один URL, который можно указать в качестве главной страницы.
Вопрос:
Как сделать, чтобы сайт pda.site.com имел свой вариант главной страницы? То есть, чтобы страница, расположенная по адресу pda.site.com/all открывалась при запросе pda.site.com/
?
Пока придумал только вариант с редиректом в htaccess:

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^pda\.site\.com$ [NC]
RewriteRule ^$ all [L,R=301]

Но в этом варианте просто при обращении к pda.site.com/ происходит перенаправление на pda.site.com/all, а хотелось бы, чтобы адрес оставался тот, к которому обращаются, т. е. pda.site.com/

Комментарии

Аватар пользователя Skeptik Skeptik 30 июля 2013 в 19:07

Не помогает. Я уже и R пробовал и QSA - разные варианты.
У меня на нескольких сайтах этот момент в htaccess работает по-разному. На одном (персональная CMS) четко подменяет один адрес другим при таком коде:

RewriteEngine On
RewriteRule ^error401.htm 401.php [QSA,L]

Если набрать 401.php подменит адрес на несуществующий error401.htm.
На другом (php, без движка) при таком коде открываются оба адреса, а на друпаловском это вообще не срабатывает - только перенаправление из первого поста.

Аватар пользователя 6RUN0 6RUN0 31 июля 2013 в 11:08

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^pda\.site\.com$ [NC]
RewriteRule ^$ all [R=301] # Сделать редирект на существующую станицу
RewriteRule ^all$ / [QSA,L] # Сделать символическую ссылку на /

Апача нет под рукой, проверить не могу. Главное чтоб не зациклило редирект. Smile

Аватар пользователя Skeptik Skeptik 31 июля 2013 в 13:02

6RUN0, попробовал - не работает. Не срабатывает ни редирект, ни подмена адреса. Адреса pda.site.com/ и pda.site.com/all открывают соответствующий каждому из них контент. Sad

Аватар пользователя 6RUN0 6RUN0 31 июля 2013 в 14:48

ну дак доку почитай, я этот апач уж года 3 как не использую

Если твоё

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^pda\.site\.com$ [NC]
RewriteRule ^$ all [L,R=301]

редиректит с pda.site.com на pda.site.com/all
то в нем меняеш последнюю строку на
RewriteRule ^$ all [R=301]

[L] - last , те это правило применяется и др. правила для редиректа не рассматриваются.

Далее тебе нужно просто изменить url и сделать это правило, "последним"
Попробуй ещё так
RewriteRule /all / [QSA,L]
или даже так
RewriteRule /all$ / [QSA,L]

Аватар пользователя Skeptik Skeptik 31 июля 2013 в 17:32

6RUN0, во всех трех вариантах выдает ошибку:

Quote:
Moved Permanently

The document has moved here.

Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.


Где "here" - адрес "pda.site.com".

Аватар пользователя AmiGator AmiGator 9 августа 2013 в 18:12

нашел вот такое решение. не знаю, как на друпале, на другом движке сработало. правда ссылки внутри страницы остаются по прежнему с главного домена

RewriteCond %{HTTP_HOST} =subdomain.site.com
RewriteCond %{REQUEST_URI} !^/subdomain
RewriteRule ^(.*)$ /subdomain/$1 [L,QSA]