|
Компьютерный форум 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 | Цитировать Цитата Sham:
Цитата Sham:
но н не работает на моем хостинге: Цитата:
Может еще какой есть... или я не понял о чем вы ? |
|||
Отправлено: 00:28, 18-08-2009 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Deadooshka Сообщения: 2511
|
Профиль | Отправить PM | Цитировать остается javascript: вешать на ссылки перехода ru\en события onclick, по которым ставить кукис...
|
Отправлено: 01:05, 18-08-2009 | #12 |
Пользователь Сообщения: 99
|
Профиль | Отправить PM | Цитировать Цитата Sham:
Вот странная штука: все нижеследующие примеры рабочие Может хочтер что-то вписал без моего ведома.. может я по недосыпу навалял дурака. Посмотрите пожалуйста - на каком варианте лучше остановить выбор? RewriteEngine On RewriteBase / # PETERHOST 2009 + MY RewriteCond %{HTTP_HOST} (www\.)?en\.site.\spb\.ru$ RewriteCond %{REQUEST_URI} !^(/)?en/ RewriteRule ^(.*)$ en/$1 RewriteCond %{HTTP_HOST} (www\.)?ru\.site.\spb\.ru$ RewriteCond %{REQUEST_URI} !^(/)?ru/ RewriteRule ^(.*)$ ru/$1 # ANTICHAT v1 # RewriteCond %{HTTP_COOKIE} lang=([^;]+) [NC] # RewriteCond %{HTTP_HOST} !^(en|ru) [NC] # RewriteRule ^(.*)$ http://%1.site.spb.ru/ [R=302,QSA,L] # OS zone v3 # RewriteCond %{HTTP_COOKIE} lang\=([^\;]+) [NC] # RewriteCond %{HTTP_HOST} !^(www\.)?(ru|en)\.site\.spb\.ru$ # RewriteRule . http://%1.site.spb.ru/ [R,QSA,L] # My v1 # RewriteCond %{HTTP_COOKIE} lang=([^;]+) [NC] # RewriteRule ^$ http://%1.site.spb.ru/ [R=302,QSA,L] # My v2 # RewriteCond %{HTTP_COOKIE} lang=([^;]+) [NC] # RewriteRule ^$ http://%1.site.spb.ru/ [R,QSA,L] |
|
Отправлено: 01:29, 18-08-2009 | #13 |
Deadooshka Сообщения: 2511
|
Профиль | Отправить PM | Цитировать там где с проверкой домена (как страховка от зацикливания), а про регулярное выражение с доменом вам лучше знать...
просто в первом варианте лишняя подмаска, которая не используется, и лишний квантификатор * (достаточно ".?", ибо иначе для проверки захватывается вся строка, что непроизводительно, но не критично). |
Отправлено: 22:13, 18-08-2009 | #14 |
Пользователь Сообщения: 99
|
Профиль | Отправить PM | Цитировать Огромное спасибо!!!!
(жаль нет кнопочки спасибо, а "полезное сообщение" столь мала Цитата Sham:
|
|
Отправлено: 23:14, 18-08-2009 | #15 |
Deadooshka Сообщения: 2511
|
Профиль | Отправить PM | Цитировать в том смысле, что вторая строка - это проверка домена из запроса, и регулярное выражение можно по-разному составить - вам виднее как это сделать (любой вариант подойдет).
|
Отправлено: 23:21, 18-08-2009 | #16 |
Пользователь Сообщения: 99
|
Профиль | Отправить PM | Цитировать Пробовал добавить условие:
с www.sub1.site.spb.ru (длинновато... но думаю пригодится для субдоменов) на sub1.site.spb.ru - тобешь убираем www Попробовал два нижеследующих вариант (min www v2 и min www v2) Но они не сработали Подскажите пожалуйста как можно подправить? # OS zone v3 RewriteCond %{HTTP_COOKIE} lang\=([^\;]+) [NC] RewriteCond %{HTTP_HOST} !^(www\.)?(sub1|sub2)\.site\.spb\.ru$ RewriteRule . http://%1.site.spb.ru/ [R,QSA] # min www v1 RewriteCond %{HTTP_HOST} ^www\.%1.\site\.spb\.ru\ [NC] RewriteRule (.*) http://%1.site.spb.ru/$1 [R=301,L] # min www v2 # RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] # RewriteRule ^(.*)$ http://%1/$1 [R=301,QSA,] |
Отправлено: 04:21, 19-08-2009 | #17 |
Deadooshka Сообщения: 2511
|
Профиль | Отправить PM | Цитировать Цитата blacks2:
Цитата blacks2:
Цитата blacks2:
|
|||
Отправлено: 23:15, 19-08-2009 | #18 |
Пользователь Сообщения: 99
|
Профиль | Отправить PM | Цитировать Цитата Sham:
# OS zone RewriteCond %{HTTP_COOKIE} lang\=([^\;]+) [NC] RewriteCond %{HTTP_HOST} !^(www\.)?(ru|en)\.justplan\.spb\.ru$ RewriteRule .? http://%1.justplan.spb.ru/ [R,QSA] # убираем www RewriteCond %{HTTP_HOST} ^www\?(ru|en)\site\.spb\.ru [NC] » RewriteRule (.*) http://(ru|en).justplan.spb.ru/$1 [R=301,L] выглядеть так? |
|
Отправлено: 01:13, 20-08-2009 | #19 |
Deadooshka Сообщения: 2511
|
Профиль | Отправить PM | Цитировать |
Отправлено: 03:18, 20-08-2009 | #20 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Перенаправления домена на сайт | 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 |
|