Приветствую<br>Нужна помощь с настройкой непростой схемы рерайтов для Bitrix(Битрикс Управление сайтом).<br><br>Cайт <a href="http://mysite.ru">mysite.ru</a> пытаюсь перенести с nginx+Apache2 на nginx+php5-fpm(5.3.2). <br>
<font size="4"><br><b>Вот реврайты из корневого .htaccess</b></font><br><br><blockquote style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;" class="gmail_quote"> RewriteCond %{REQUEST_FILENAME} !-f<br>
RewriteCond %{REQUEST_FILENAME} !-l<br> RewriteCond %{REQUEST_FILENAME} !-d <br> RewriteRule ^(.*)([^/])$ $1$2/ [R,L]<br><br><br> RewriteCond %{ENV:REDIRECT_RDR} ^$<br> RewriteCond %{HTTP_HOST} ^(.+)\.mysite\.ru$<br>
RewriteCond %{HTTP_HOST} !^www\.mysite\.ru$<br> RewriteRule ^([a-zA-Z0-9`~!@#$%^&()\-+";=\\/|]*)$ blogs/fake/%2/$1 [L,E=RDR:1]<br> <br> <br> RewriteCond %{REQUEST_FILENAME} !-f<br> RewriteCond %{REQUEST_FILENAME} !-l<br>
RewriteCond %{REQUEST_FILENAME} !-d<br> RewriteCond %{REQUEST_FILENAME} !/urlrewriteprepend.php$<br> RewriteRule ^(.*)$ /urlrewriteprepend.php [L]<br></blockquote><br><br><b><font size="4">Мой конфиг с комментариями</font></b><br>
<blockquote style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;" class="gmail_quote">server {<br> listen <a href="http://1.1.1.1:80">1.1.1.1:80</a>;<br><br> # Опечатки в написании сайта<br>
server_name <a href="http://mysait.com">mysait.com</a>;<br> server_name *.<a href="http://mysait.com">mysait.com</a>;<br><br> rewrite ^(.*) <a href="http://www.mysite.ru">http://www.mysite.ru</a>$1 permanent;<br>}<br>
<br>server {<br> listen <a href="http://1.1.1.1:80">1.1.1.1:80</a>;<br><br> server_name <a href="http://www.mysite.ru">www.mysite.ru</a>;<br> # Исключаем тестовые поддомены, находящиеся на другом сервере.<br> server_name ~(?<!^test1|^test2|^test3)\.mysite\.ru$;<br>
set $subserver $1;<br><br> access_log /var/log/nginx/mysite.ru.access.log;<br> error_log /var/log/nginx/mysite.ru.error.log info;<br> rewrite_log on;<br><br> root /var/www/<a href="http://mysite.ru">mysite.ru</a>;<br>
index index.php index.phtml index.html index.htm;<br> sendfile on;<br><br> # На всех поддоменах кроме www делаем реврайт для обработки блогов.<br> if ($host ~* (?<!^www)\.mysite\.ru) {<br> rewrite ^/([-a-zA-Z0-9`~!@#$%^&()\+"\;=\/|]*)$ /blogs/fake$subserver/$1;<br>
}<br><br> # Файлов по путям /blogs/fake$subserver/$1 нету, несуществующие файлы будет обрабатывать скрипт urlrewriteprepend.php<br> # Он в свою очередь обрабатывает полученное значение $_SERVER['HTTP_HOST'], для дальнейшего пропихивыния на urlrewrite.php(это уже стандартный битриксовский)<br>
location / {<br> if (!-e $request_filename) {<br> rewrite ^(.*)$ /urlrewriteprepend.php last;<br> }<br> }<br><br> location ~ \.(php|php4|php5|phtml)$ {<br> try_files $fastcgi_script_name =404;<br><br>
fastcgi_pass <a href="http://127.0.0.1:9000">127.0.0.1:9000</a>;<br> .......fastcgi_params..........<br> }<br>}<br></blockquote><br><font size="4"><b>Суть проблемы</b></font><br>На всех страницах висит javascript-авторизация. Когда авторизуюсь с главной страницы(с домена <a href="http://www.mysite.ru">www.mysite.ru</a>), то авторизация проходит успешно, появляется панель управления битрикса, logout тоже происходит успешно, всё ок. Когда же я авторизуюсь с любого из поддоменов вида <a href="http://blog1.mysite.ru">blog1.mysite.ru</a>, то авторизация проходит успешно, а вот logout отдает 404, собственно которой прописан первой строкой в локейшене php-шек.<br>
Вопрос: как наладить Logout с поддоменов?<br><br><font size="4"><b>Дополнительная информация</b></font><br><br><b>Как происходит на практике</b>(взято из rewrite-логов):<br>1. Заходим на сайт <a href="http://mysite.ru">mysite.ru</a> => редирект на <a href="http://www.mysite.ru">www.mysite.ru</a><br>
2. Идем на поддомен по ссылке <a href="http://blog1.mysite.ru/">http://blog1.mysite.ru/</a><br>=> "(?<!^www)\.mysite\.ru" matches "<a href="http://blog1.mysite.ru">blog1.mysite.ru</a>", server: <a href="http://www.mysite.ru">www.mysite.ru</a>, request: "GET / HTTP/1.1", host: "<a href="http://blog1.mysite.ru">blog1.mysite.ru</a>", referrer: "<a href="http://www.mysite.ru/">http://www.mysite.ru/</a>"<br>
=> "^/([-a-zA-Z0-9`~!@#$%^&()\+"\;=\/|]*)$" matches "/", server: <a href="http://www.mysite.ru">www.mysite.ru</a>, request: "GET / HTTP/1.1", host: "<a href="http://blog1.mysite.ru">blog1.mysite.ru</a>", referrer: "<a href="http://www.mysite.ru/">http://www.mysite.ru/</a>"<br>
==> rewritten data: "/blogs/fake/", args: "", server: <a href="http://www.mysite.ru">www.mysite.ru</a>, request: "GET / HTTP/1.1", host: "<a href="http://blog1.mysite.ru">blog1.mysite.ru</a>", referrer: "<a href="http://www.mysite.ru/">http://www.mysite.ru/</a>"<br>
<br>### Здесь скрипты urlrewriteprepend+urlrewrite обрабатывают линк ###<br>=> "^(.*)$" matches "/blogs/fake/", server: <a href="http://www.mysite.ru">www.mysite.ru</a>, request: "GET / HTTP/1.1", host: "<a href="http://blog1.mysite.ru">blog1.mysite.ru</a>", referrer: "<a href="http://www.mysite.ru/">http://www.mysite.ru/</a>"<br>
==> rewritten data: "/urlrewriteprepend.php", args: "", server: <a href="http://www.mysite.ru">www.mysite.ru</a>, request: "GET / HTTP/1.1", host: "<a href="http://blog1.mysite.ru">blog1.mysite.ru</a>", referrer: "<a href="http://www.mysite.ru/">http://www.mysite.ru/</a>"<br>
<br>=> "(?<!^www)\.mysite\.ru" matches "<a href="http://blog1.mysite.ru">blog1.mysite.ru</a>", , server: <a href="http://www.mysite.ru">www.mysite.ru</a>, request: "GET /upload/rk/85a/mysite_240x400.swf?flash_link=%2Fbitrix%2Frk.php HTTP/1.1", host: "<a href="http://blog1.mysite.ru">blog1.mysite.ru</a>", referrer: "<a href="http://blog1.mysite.ru/">http://blog1.mysite.ru/</a>"<br>
<br>Вуаля, открывается нужный блог, всё ок.<br><br><b>Лог авторизации с поддомена</b>(авторизация проходит успешно)<br><blockquote style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;" class="gmail_quote">
=> "(?<!^www)\.mysite\.ru" matches "<a href="http://blog1.mysite.ru">blog1.mysite.ru</a>", server: <a href="http://www.mysite.ru">www.mysite.ru</a>, request: "POST /auth.php HTTP/1.1", host: "<a href="http://blog1.mysite.ru">blog1.mysite.ru</a>", referrer: "<a href="http://blog1.mysite.ru/">http://blog1.mysite.ru/</a>"<br>
<br>=> "(?<!^www)\.mysite\.ru" matches "<a href="http://blog1.mysite.ru">blog1.mysite.ru</a>", server: <a href="http://www.mysite.ru">www.mysite.ru</a>, request: "GET /bitrix/js/main/utils.js?1264068828 HTTP/1.1", host: "<a href="http://blog1.mysite.ru">blog1.mysite.ru</a>", referrer: "<a href="http://blog1.mysite.ru/auth.php">http://blog1.mysite.ru/auth.php</a>"<br>
<br>=> "(?<!^www)\.mysite\.ru" matches "<a href="http://blog1.mysite.ru">blog1.mysite.ru</a>", server: <a href="http://www.mysite.ru">www.mysite.ru</a>, request: "GET /bitrix/js/main/admin_tools.js?1264068828 HTTP/1.1", host: "<a href="http://blog1.mysite.ru">blog1.mysite.ru</a>", referrer: "<a href="http://blog1.mysite.ru/auth.php">http://blog1.mysite.ru/auth.php</a>"<br>
<br>=> "(?<!^www)\.mysite\.ru" matches "<a href="http://blog1.mysite.ru">blog1.mysite.ru</a>", server: <a href="http://www.mysite.ru">www.mysite.ru</a>, request: "GET /bitrix/js/main/popup_menu.js?1260266311 HTTP/1.1", host: "<a href="http://blog1.mysite.ru">blog1.mysite.ru</a>", referrer: "<a href="http://blog1.mysite.ru/auth.php">http://blog1.mysite.ru/auth.php</a>"<br>
<br>=> "(?<!^www)\.mysite\.ru" matches "<a href="http://blog1.mysite.ru">blog1.mysite.ru</a>", server: <a href="http://www.mysite.ru">www.mysite.ru</a>, request: "GET /bitrix/js/main/public_tools.js?1264068828 HTTP/1.1", host: "<a href="http://blog1.mysite.ru">blog1.mysite.ru</a>", referrer: "<a href="http://blog1.mysite.ru/auth.php">http://blog1.mysite.ru/auth.php</a>"<br>
<br>=> "(?<!^www)\.mysite\.ru" matches "<a href="http://blog1.mysite.ru">blog1.mysite.ru</a>", server: <a href="http://www.mysite.ru">www.mysite.ru</a>, request: "GET /bitrix/themes/.default/pubstyles.css?1260779398 HTTP/1.1", host: "<a href="http://blog1.mysite.ru">blog1.mysite.ru</a>", referrer: "<a href="http://blog1.mysite.ru/auth.php">http://blog1.mysite.ru/auth.php</a>"<br>
<br>=> "(?<!^www)\.mysite\.ru" matches "<a href="http://blog1.mysite.ru">blog1.mysite.ru</a>", server: <a href="http://www.mysite.ru">www.mysite.ru</a>, request: "GET /bitrix/themes/.default/jspopup.css?1260266310 HTTP/1.1", host: "<a href="http://blog1.mysite.ru">blog1.mysite.ru</a>", referrer: "<a href="http://blog1.mysite.ru/auth.php">http://blog1.mysite.ru/auth.php</a>"<br>
<br>=> "(?<!^www)\.mysite\.ru" matches "<a href="http://blog1.mysite.ru">blog1.mysite.ru</a>", server: <a href="http://www.mysite.ru">www.mysite.ru</a>, request: "GET /upload/rk/85a/mysite_240x400.swf?flash_link=%2Fbitrix%2Frk.php HTTP/1.1", host: "<a href="http://blog1.mysite.ru">blog1.mysite.ru</a>", referrer: "<a href="http://blog1.mysite.ru/auth.php">http://blog1.mysite.ru/auth.php</a>"<br>
</blockquote><br><b>Лог при неудачном Logout-е с поддомена</b><br><blockquote style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;" class="gmail_quote">=> "(?<!^www)\.mysite\.ru" matches "<a href="http://blog1.mysite.ru">blog1.mysite.ru</a>", server: <a href="http://www.mysite.ru">www.mysite.ru</a>, request: "GET /blogs/blog1/index.php?logout=yes&CODE=blog1 HTTP/1.1", host: "<a href="http://blog1.mysite.ru">blog1.mysite.ru</a>", referrer: "<a href="http://blog1.mysite.ru/">http://blog1.mysite.ru/</a>"<br>
<br>=> "^/([-a-zA-Z0-9`~!@#$%^&()\+"\;=\/|]*)$" does not match "/blogs/blog1/index.php", server: <a href="http://www.mysite.ru">www.mysite.ru</a>, request: "GET /blogs/blog1/index.php?logout=yes&CODE=blog1 HTTP/1.1", host: "<a href="http://blog1.mysite.ru">blog1.mysite.ru</a>", referrer: "<a href="http://blog1.mysite.ru/">http://blog1.mysite.ru/</a>"<br>
<br>access.log:<br>== "GET /blogs/blog1/index.php?logout=yes&CODE=blog1 HTTP/1.1" 404 143 "<a href="http://blog1.mysite.ru/">http://blog1.mysite.ru/</a>"<br></blockquote><br clear="all"><br>-- <br>
Best regards,<br>Koldaev Anton<br>