Разделить сайты в .htaccess
Добрый день!
Вот тут Василий выложил замечательный плагин для создания двух сайтов в одной админке. К сожалению там комментарии отключены и написать вопрос нет возможности.
По примеру все сделал, все работает, но осталась один вопрос:
Как развести ссылку в /index.php что бы каждая ссылалась на свой сайт!? Если в стандартном, то эта строчка выглядит следующем образом:
Вот тут Василий выложил замечательный плагин для создания двух сайтов в одной админке. К сожалению там комментарии отключены и написать вопрос нет возможности.
По примеру все сделал, все работает, но осталась один вопрос:
Как развести ссылку в /index.php что бы каждая ссылалась на свой сайт!? Если в стандартном, то эта строчка выглядит следующем образом:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://site.ru/ [R=301,L]
Пробовал вот так, на первом отрабатывает, на втором перебрасывает на первый:RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://%1/$1 [R=301,L]
Кто решил проблему, отпишитесь, спасибо! Комментарии: 17
На сколько знаю, если используешь $1 или %1, значит нужно где-то что-то в скобки взять…
% — берется из RewriteCond
$ — берется из RewriteRule
% — берется из RewriteCond
$ — берется из RewriteRule
Не знаю, я взял по примеру вот этого, это правило отрабатывает правильно:
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
Вот я о том и говорил…
%1 = (.*) из RewriteCond
$1 = (.*) из RewriteRule
А у тебя ничего в скобки не взято,
т.е. на выходе у тебя вместо
%1 = (.*) из RewriteCond
$1 = (.*) из RewriteRule
А у тебя ничего в скобки не взято,
т.е. на выходе у тебя вместо
http://%1/$1
получается http:///
Что т не могу найти нужного описания для правки, к примеру вот тут больше упор за site.ru/##/## — а как написать мне переменную!?
Сразу оговорюсь, я сути вопроса не очень понял, точнее не вникал в данную тему разделения, я лишь к регуляркам придрался.
Вот ты пишешь
$1, %1 — это что у тебя? Переменные? а откуда они значения берут?
Тогда уж нужно писать как-то так:
Вот ты пишешь
RewriteRule ^index\.php$ http://%1/$1 [R=301,L]
$1, %1 — это что у тебя? Переменные? а откуда они значения берут?
Тогда уж нужно писать как-то так:
RewriteRule ^(index\.php)$ http://site.ru/$1 [R=301,L]
тогда $1 будет равна index.php
Смотри в одной админке два сайта:
Ты набираешь site.ru/index.php и попадаешь на site.ru
На втором сайте набираешь mypage.ru/index.php и попадаешь на site.ru
Нужно при наборе index.php перенаправляло в свою директорию
Касательно того что я попробовал изначально, я просто попытался по этому примеру:
Ты набираешь site.ru/index.php и попадаешь на site.ru
На втором сайте набираешь mypage.ru/index.php и попадаешь на site.ru
Нужно при наборе index.php перенаправляло в свою директорию
Касательно того что я попробовал изначально, я просто попытался по этому примеру:
## Перевод с www на без www
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
адаптировать это правило для себя## Перенаправляем с index.php на /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ https://site.ru/ [R=301,L]
Не знаю, правильно или нет написано, но, как я думаю, логика примерно такая:
RewriteCond %{HTTP_HOST} ^www.site\.ru$ [NC]
RewriteRule ^(.*)$ https://site.ru/dir1/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www.mypage\.ru$ [NC]
RewriteRule ^(.*)$ https://site.ru/dir2/$1 [R=301,L]
Максим что то я не уловил логики что ты пытаешься сделать!
У меня в одной админке два сайта, другими словами два домена = два сайта!
Смотри, если в MODx не указать правило обработки
Мне нужно развести site.ru/index.php и mypage.ru/index.php, что бы при наборе любого из указанных URL тебе перенаправляло в свою директорию, а именно site.ru и mypage.ru
Что ты выше пытаешься сделать, я не совсем понял!
У меня в одной админке два сайта, другими словами два домена = два сайта!
Смотри, если в MODx не указать правило обработки
## Перенаправляем с index.php на /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ https://site.ru/ [R=301,L]
то при наборе site.ru/index.php будет открываться главная страница, идентичная просто site.ruМне нужно развести site.ru/index.php и mypage.ru/index.php, что бы при наборе любого из указанных URL тебе перенаправляло в свою директорию, а именно site.ru и mypage.ru
Что ты выше пытаешься сделать, я не совсем понял!
Я тоже не совсем понимаю что ты хочешь))
Во-первых, я изначально говорил про регулярки, то что ты их не совсем правильно используешь.
Во-вторых, как уже писал не особо вникал в тему (ссылку которую ты приводил).
В-третьих, я не могу понять про index.php. По-умолчанию / и так соответствует индексу и перенаправляет на index.html или index.php. Можно написать DirectoryIndex index.php.
Сейчас то у тебя как настроено? Два домена ссылаются на один и тот же файл index.php, расположенный в одной и той же директории на сервере?
Смысл то в том чтобы проверять название домена, если оно равно site.ru, перенаправлять на одну папку, если оно равно mypage.ru — на другую? Просто в таком случае я не пойму при чем тут index.php :))
Во-первых, я изначально говорил про регулярки, то что ты их не совсем правильно используешь.
Во-вторых, как уже писал не особо вникал в тему (ссылку которую ты приводил).
В-третьих, я не могу понять про index.php. По-умолчанию / и так соответствует индексу и перенаправляет на index.html или index.php. Можно написать DirectoryIndex index.php.
Сейчас то у тебя как настроено? Два домена ссылаются на один и тот же файл index.php, расположенный в одной и той же директории на сервере?
Смысл то в том чтобы проверять название домена, если оно равно site.ru, перенаправлять на одну папку, если оно равно mypage.ru — на другую? Просто в таком случае я не пойму при чем тут index.php :))
Еще раз более подробно, смотри:
Вот есть решение: bezumkin.ru/sections/tips_and_tricks/2439
Сделал так же, теперь у меня в админке два сайта! К примеру:
Далее проблема:
Вот есть решение: bezumkin.ru/sections/tips_and_tricks/2439
Сделал так же, теперь у меня в админке два сайта! К примеру:
site.ru
mypage.ru
Получается, что физически один движок, один и те же папки на два сайта!Далее проблема:
если набрать:
site.ru/index.php
то попадаем на:
site.ru
если набрать:
mypage.ru/index.php
то попадаем на
site.ru
Задача, в .htaccess написать условие, что бы при наборе site.ru/index.php
или
mypage.ru/index.php
перенаправляло на самого себя, т.е. на :
site.ru
и соответственно
mypage.ru
Как я понял, сейчас у тебя стоит:
Поэтому он и перенаправляет
Может быть в таком случае вообще убрать это правило?
Или можно попробовать написать:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://site.ru/ [R=301,L]
Поэтому он и перенаправляет
http://mypage.ru/index.php
на http://site.ru/
, как и указано в RewriteRule.Может быть в таком случае вообще убрать это правило?
Или можно попробовать написать:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://%{HTTP_HOST}/ [R=301,L]
Да не, вот это указал правило для обычного сайта
Это не работает к сожалению
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://site.ru/ [R=301,L]
что вот это правило нужно адаптировать под свои нужды на два сайтаЭто не работает к сожалению
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://%{HTTP_HOST}/ [R=301,L]
а так
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ / [R=301,L]
Нет, к сожалению =(
Кстати, браузеры вроде еще кешируют ссылки (перенаправления)… нужно очистить кеш перед тем как пробовать…
Это было сделано в первую очередь! MODx вообще хорошо все кеширует!
Кстати да, попробовал в другом браузере, заработало!
Кстати да, попробовал в другом браузере, заработало!
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://%{HTTP_HOST}/ [R=301,L]
Спасибо тебе!
Ок, пожалуйста))
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.