|
Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Ошибка перенаправления в субдоменах |
|
Ошибка перенаправления в субдоменах
|
Пользователь Сообщения: 99 |
Профиль | Отправить PM | Цитировать
Ищутся добрые люди готовые помочь!
3и или 4е сутки не могу собрать следу штуку : ЗАДАЧА: При заходе на site.spb.ru по установленным кукам посетитель перенаправлялся на один из субдоменов и там оставался. Позже добавить на весь сайт редиект «с www» на «без www». ПОДРОБНЕЙ: Пользователь заходит на site.spb.ru В корне сайта лежит htaccess RewriteEngine On RewriteBase / # субдомены – построены по правилам моего хостера RewriteCond %{HTTP_HOST} (www\.)?sub1\.site.\spb\.ru$ RewriteCond %{REQUEST_URI} !^(/)? sub1/ RewriteRule ^(.*)$ sub1/$1 RewriteCond %{HTTP_HOST} (www\.)? sub2\.site.\spb\.ru$ RewriteCond %{REQUEST_URI} !^(/)? sub2/ RewriteRule ^(.*)$ sub2/$1 # прочитать значение куки и перенаправить на субдомен указанный в куки RewriteCond %{HTTP_COOKIE} setting=([^;]+) [NC] RewriteRule ^(.*)$ http://%1.site.spb.ru/ [R=302,QSA,L] 1. Если куки установлены то в зависимости от них идет перенаправление на sub1.site.spb.ru или sub2.site.spb.ru 2. Если куков нет то ждется переход от пользователя на sub1.site.spb.ru или sub2.site.spb.ru Где и ставятся куки. ПРОБЛЕМА: Редирект по куки на на субдомены идет но с ошибкой: «Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится.» «Эта проблема может возникать при отключении или запрещении принятия cookies.» Все вышесказанное работает на виртуальном хостинге, PHP не используется, JavaScript тоже, остальные скрипты тоже - Только META теги, htaccess, html ! Саппорт хостинга предложил что-то непонятное но вроде правдивое: «Объясняю на примере Итак, посетитель заходит на site.spb.ru, оттуда идет на страницу /sub1 Сейчас по умолчаню ему выдается cookie, а надо бы проверить реферер Если реферрер НЕ sub1.site.spb.ru, то выдаем cookie и редиректим на поддомен Поскольку посетитель новый, его перенаправили на поддомен Итак, мы попадаем на ту же самую страницу. Но повторного редиректа не происходит, поскольку этому мешает реферрер.» = Пробовал закрывать по рефералу - не сработало Кто может, помогите решением! Если необходимо могу приаттачить в zip весь пример. Помогите пожалуйста! |
|
Отправлено: 09:07, 15-08-2009 |
Пользователь Сообщения: 99
|
Профиль | Отправить PM | Цитировать RewriteCond %{HTTP_HOST} ^www\.(ru|en)\.site\.spb\.ru [NC] RewriteRule ^(.*)$ http://%1.site.spb.ru/$1 [R,L] http://www.ru.site.spb.ru/ идет переход на http://ru.justplan.spb.ru/ru// Удалил в второй строке /$1 переход идет на http://ru.justplan.spb.ru/ - как и нужно... Но мне кажется или нет что /$1 удалять неправильно? |
Отправлено: 06:32, 20-08-2009 | #21 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Deadooshka Сообщения: 2511
|
Профиль | Отправить PM | Цитировать $1 - это содержимое первой подмаски правила (что в скобках). если подмаски не нужно, то достаточно ".?" и без $1
|
Отправлено: 13:24, 20-08-2009 | #22 |
Пользователь Сообщения: 99
|
Профиль | Отправить PM | Цитировать Цитата Sham:
Примеров без под маски много - нашел бы. Спасибо что помогли, подсказали с подмаской! Получается последнее /$1 или точнее $1 можно удалить? |
|
Отправлено: 14:48, 20-08-2009 | #23 |
Deadooshka Сообщения: 2511
|
Профиль | Отправить PM | Цитировать подмаска из условия - это %1, а $1 - из текущего правила... вам виднее, что удалять...
|
Отправлено: 15:40, 20-08-2009 | #24 |
Пользователь Сообщения: 99
|
Профиль | Отправить PM | Цитировать Цитата Sham:
Буду тестировать. |
|
Отправлено: 00:31, 21-08-2009 | #25 |
Пользователь Сообщения: 99
|
Профиль | Отправить PM | Цитировать В продолжение тестирования появился вопрос:
В какой последовательности лучше выставлять следующие директивы?: Не будет ли проблем с такой структурой? - боюсь мало ли что-то в директивах пересечется и потом боком выйдет # 01 SUBDOMEN REDIRECT перенаправление из site.com/sub1/ в sub1.site.com # 02 COOKIE если есть куки перенаправление в sub1.site.com или sub2.site.com # 03 Accept-Language перенаправление в зависимости от языка браузера # 04 NO-WWW удаление www перед доменами и субдоменами Полную версию приложил в аттаче (20-25строк) Спасибо. |
Отправлено: 17:58, 24-08-2009 | #26 |
Deadooshka Сообщения: 2511
|
Профиль | Отправить PM | Цитировать 01 имхо лучше в конец, ибо самые первые дб внешние редиректы R... (остальное по сути не редиректы а перезапись урла url rewrite)...
|
Отправлено: 03:17, 25-08-2009 | #27 |
Пользователь Сообщения: 99
|
Профиль | Отправить PM | Цитировать Цитата Sham:
|
|
Отправлено: 03:50, 25-08-2009 | #28 |
Deadooshka Сообщения: 2511
|
Профиль | Отправить PM | Цитировать первыми правилами лучше ставить внешние редиректы (где флаг R или полный урл в правиле)
|
Отправлено: 04:38, 25-08-2009 | #29 |
Пользователь Сообщения: 99
|
Профиль | Отправить PM | Цитировать Один из последних вопросов :/
В конце концов получилось подобное: # COOKIE RewriteCond %{HTTP_COOKIE} lang\=([^\;]+) [NC] RewriteCond %{HTTP_HOST} !^(www\.)?(ru|en)\.site\.ru$ RewriteRule .? http://%1.site.ru/ [R,QSA] # Accept-Language RewriteCond %{HTTP:Accept-Language} ^ru [NC] RewriteRule ^$ http://ru.site.ru/ [L,R=301] RewriteCond %{HTTP:Accept-Language} ^en [NC] RewriteRule ^$ http://en.site.ru/ [L,R=301] #For every other language (including English :)) use English RewriteRule ^$ http://site.ru/ [L,R=301] 1. опятьже стоит ли ставить такую последовательность? - но это не главный... 2. подумываю - не будет ли правильно поставить в данный код некий переключатель который бы: куки есть - Accept-Language не читаем куов нет - Accept-Language читаем - стоит такое ставить или все нормально должно работать и так? Спасибо. |
Отправлено: 03:25, 26-08-2009 | #30 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Перенаправления домена на сайт | Ceval | Хочу все знать | 0 | 16-12-2009 19:19 | |
Непонятная ошибка virtualdub при просмотре либо конвертации DV файла-ошибка only в VD | illusionmgs | Видео и аудио: обработка и кодирование | 9 | 21-03-2009 14:47 | |
Запрет перенаправления папок в домене. | MTA | Microsoft Windows NT/2000/2003 | 1 | 17-07-2007 09:43 | |
Нужно организовать перенаправления печати с одного сервера на другой | babki | Microsoft Windows NT/2000/2003 | 6 | 16-08-2006 09:35 | |
[решено] Перенаправления папки спулера (spooler) на сервере печати | babki | Microsoft Windows NT/2000/2003 | 4 | 12-11-2005 15:07 |
|