А РХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev ][Date Next ][Thread Prev ][Thread Next ][Date Index ][Thread Index ]
[Bitrix rewrites] Нужна помощь
To : nginx-ru@xxxxxxxxx
Subject : [Bitrix rewrites] Нужна помощь
From : Anton Koldaev <koldaevav@xxxxxxxxx >
Date: Fri, 10 Sep 2010 02:28:31 +0400
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:mime-version:received:from:date :message-id:subject:to:content-type; bh=KuTIw58wvTEziqFpEHt3Ycyfv/felokWn/ed7gBhoag=; b=emjK5Qkufm3qD1IdHtgQl8pNFZX3M8f09tfGFYsNsnCGFKiX1OufoICsuilpa9uKsG 2RbUGMrqMwIwa/qL7KDi9c9+VV6ArcDZsE9omkUDX0GPmC9N0sz4qeJnyMmcqCanXgGn W2CqnLuEAbZ0BVIUzJOTM5Ob+032onMAtVyPI=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:from:date:message-id:subject:to:content-type; b=KNqwMpGHPfkiWIFoRl0bTLT6fAI/LyPxj/7vkeV72Q4lnha3pZ2Ke5yG0pScE1i4jx otlKVKElOwaYv6Ukq0hbwDDj3qdy7a+wNe8CXmA+pasVkaTBAxfhUb+u+1PCo8zAuiVX V724Drkb01uxJ/s0oSycRtTX18xchs6ECBspo=
Приветствую Нужна помощь с настройкой непростой схемы рерайтов для Bitrix(Битрикс Управление сайтом). Cайт mysite.ru пытаюсь перенести с nginx+Apache2 на nginx+php5-fpm(5.3.2).
Вот реврайты из корневого .htaccess RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)([^/])$ $1$2/ [R,L] RewriteCond %{ENV:REDIRECT_RDR} ^$ RewriteCond %{HTTP_HOST} ^(.+)\.mysite\.ru$
RewriteCond %{HTTP_HOST} !^www\.mysite\.ru$ RewriteRule ^([a-zA-Z0-9`~!@#$%^&()\-+";=\\/|]*)$ blogs/fake/%2/$1 [L,E=RDR:1] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !/urlrewriteprepend.php$ RewriteRule ^(.*)$ /urlrewriteprepend.php [L] Мой конфиг с комментариями
server { listen 1.1.1.1:80 ; # Опечатки в написании сайта
server_name mysait.com ; server_name *.mysait.com ; rewrite ^(.*) http://www.mysite.ru $1 permanent; }
server { listen 1.1.1.1:80 ; server_name www.mysite.ru ; # Исключаем тестовые поддомены, находящиеся на другом сервере. server_name ~(?<!^test1|^test2|^test3)\.mysite\.ru$;
set $subserver $1; access_log /var/log/nginx/mysite.ru.access.log; error_log /var/log/nginx/mysite.ru.error.log info; rewrite_log on; root /var/www/mysite.ru ;
index index.php index.phtml index.html index.htm; sendfile on; # На всех поддоменах кроме www делаем реврайт для обработки блогов. if ($host ~* (?<!^www)\.mysite\.ru) { rewrite ^/([-a-zA-Z0-9`~!@#$%^&()\+"\;=\/|]*)$ /blogs/fake$subserver/$1;
} # Файлов по путям /blogs/fake$subserver/$1 нету, несуществующие файлы будет обрабатывать скрипт urlrewriteprepend.php # Он в свою очередь обрабатывает полученное значение $_SERVER['HTTP_HOST'], для дальнейшего пропихивыния на urlrewrite.php(это уже стандартный битриксовский)
location / { if (!-e $request_filename) { rewrite ^(.*)$ /urlrewriteprepend.php last; } } location ~ \.(php|php4|php5|phtml)$ { try_files $fastcgi_script_name =404;
fastcgi_pass 127.0.0.1:9000 ; .......fastcgi_params.......... } } Суть проблемы На всех страницах висит _javascript_-авторизация. Когда авторизуюсь с главной страницы(с домена www.mysite.ru ), то авторизация проходит успешно, появляется панель управления битрикса, logout тоже происходит успешно, всё ок. Когда же я авторизуюсь с любого из поддоменов вида blog1.mysite.ru , то авторизация проходит успешно, а вот logout отдает 404, собственно которой прописан первой строкой в локейшене php-шек.
Вопрос: как наладить Logout с поддоменов?Дополнительная информация Как происходит на практике (взято из rewrite-логов): 1. Заходим на сайт mysite.ru => редирект на www.mysite.ru
2. Идем на поддомен по ссылке http://blog1.mysite.ru/ => "(?<!^www)\.mysite\.ru" matches "blog1.mysite.ru ", server: www.mysite.ru , request: "GET / HTTP/1.1", host: "blog1.mysite.ru ", referrer: "http://www.mysite.ru/ "
=> "^/([-a-zA-Z0-9`~!@#$%^&()\+"\;=\/|]*)$" matches "/", server: www.mysite.ru , request: "GET / HTTP/1.1", host: "blog1.mysite.ru ", referrer: "http://www.mysite.ru/ "
==> rewritten data: "/blogs/fake/", args: "", server: www.mysite.ru , request: "GET / HTTP/1.1", host: "blog1.mysite.ru ", referrer: "http://www.mysite.ru/ "
### Здесь скрипты urlrewriteprepend+urlrewrite обрабатывают линк ### => "^(.*)$" matches "/blogs/fake/", server: www.mysite.ru , request: "GET / HTTP/1.1", host: "blog1.mysite.ru ", referrer: "http://www.mysite.ru/ "
==> rewritten data: "/urlrewriteprepend.php", args: "", server: www.mysite.ru , request: "GET / HTTP/1.1", host: "blog1.mysite.ru ", referrer: "http://www.mysite.ru/ "
=> "(?<!^www)\.mysite\.ru" matches "blog1.mysite.ru ", , server: www.mysite.ru , request: "GET /upload/rk/85a/mysite_240x400.swf?flash_link=%2Fbitrix%2Frk.php HTTP/1.1", host: "blog1.mysite.ru ", referrer: "http://blog1.mysite.ru/ "
Вуаля, открывается нужный блог, всё ок.Лог авторизации с поддомена (авторизация проходит успешно)
=> "(?<!^www)\.mysite\.ru" matches "blog1.mysite.ru ", server: www.mysite.ru , request: "POST /auth.php HTTP/1.1", host: "blog1.mysite.ru ", referrer: "http://blog1.mysite.ru/ "
=> "(?<!^www)\.mysite\.ru" matches "blog1.mysite.ru ", server: www.mysite.ru , request: "GET /bitrix/js/main/utils.js?1264068828 HTTP/1.1", host: "blog1.mysite.ru ", referrer: "http://blog1.mysite.ru/auth.php "
=> "(?<!^www)\.mysite\.ru" matches "blog1.mysite.ru ", server: www.mysite.ru , request: "GET /bitrix/js/main/admin_tools.js?1264068828 HTTP/1.1", host: "blog1.mysite.ru ", referrer: "http://blog1.mysite.ru/auth.php "
=> "(?<!^www)\.mysite\.ru" matches "blog1.mysite.ru ", server: www.mysite.ru , request: "GET /bitrix/js/main/popup_menu.js?1260266311 HTTP/1.1", host: "blog1.mysite.ru ", referrer: "http://blog1.mysite.ru/auth.php "
=> "(?<!^www)\.mysite\.ru" matches "blog1.mysite.ru ", server: www.mysite.ru , request: "GET /bitrix/js/main/public_tools.js?1264068828 HTTP/1.1", host: "blog1.mysite.ru ", referrer: "http://blog1.mysite.ru/auth.php "
=> "(?<!^www)\.mysite\.ru" matches "blog1.mysite.ru ", server: www.mysite.ru , request: "GET /bitrix/themes/.default/pubstyles.css?1260779398 HTTP/1.1", host: "blog1.mysite.ru ", referrer: "http://blog1.mysite.ru/auth.php "
=> "(?<!^www)\.mysite\.ru" matches "blog1.mysite.ru ", server: www.mysite.ru , request: "GET /bitrix/themes/.default/jspopup.css?1260266310 HTTP/1.1", host: "blog1.mysite.ru ", referrer: "http://blog1.mysite.ru/auth.php "
=> "(?<!^www)\.mysite\.ru" matches "blog1.mysite.ru ", server: www.mysite.ru , request: "GET /upload/rk/85a/mysite_240x400.swf?flash_link=%2Fbitrix%2Frk.php HTTP/1.1", host: "blog1.mysite.ru ", referrer: "http://blog1.mysite.ru/auth.php "
Лог при неудачном Logout-е с поддомена => "(?<!^www)\.mysite\.ru" matches "blog1.mysite.ru ", server: www.mysite.ru , request: "GET /blogs/blog1/index.php?logout=yes&CODE=blog1 HTTP/1.1", host: "blog1.mysite.ru ", referrer: "http://blog1.mysite.ru/ "
=> "^/([-a-zA-Z0-9`~!@#$%^&()\+"\;=\/|]*)$" does not match "/blogs/blog1/index.php", server: www.mysite.ru , request: "GET /blogs/blog1/index.php?logout=yes&CODE=blog1 HTTP/1.1", host: "blog1.mysite.ru ", referrer: "http://blog1.mysite.ru/ "
access.log: == "GET /blogs/blog1/index.php?logout=yes&CODE=blog1 HTTP/1.1" 404 143 "http://blog1.mysite.ru/ " --
Best regards, Koldaev Anton
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru