skeletor Опубликовано 13 сентября, 2012 · Жалоба Есть связка nginx+apache. Нужно сделать redirect с www.domain.com на domain.com. Пробовал делать rewrite только на nginx'e - не работает. Добавил ещё и на apache - и получаю зацикливание. Как правильно сделать редирект в моём случае? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pchol Опубликовано 13 сентября, 2012 · Жалоба if ($host = 'www.domain.com' ) { rewrite ^/(.*)$ http://domain.com/$1 permanent; } Не работает разве ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
skeletor Опубликовано 13 сентября, 2012 · Жалоба Нет. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
st_re Опубликовано 13 сентября, 2012 · Жалоба конфиг нгинкса в студию.. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
skeletor Опубликовано 13 сентября, 2012 · Жалоба rewrite пока убрал. server { listen XX.XX.XX.XX; server_name domain.com; root /usr/local/www/domain.com; access_log off; location / { try_files $uri @backend; index index.html; } location ~ \.php$ { proxy_pass http://127.0.0.1:8080; proxy_redirect default; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; client_max_body_size 10m; client_body_buffer_size 128k; proxy_send_timeout 180s; proxy_read_timeout 180s; proxy_buffer_size 32k; proxy_buffers 16 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; } location @backend { proxy_pass http://127.0.0.1:8080; proxy_redirect default; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; client_max_body_size 10m; client_body_buffer_size 128k; proxy_send_timeout 180s; proxy_read_timeout 180s; proxy_buffer_size 32k; proxy_buffers 16 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/local/www/nginx-dist; } Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pchol Опубликовано 13 сентября, 2012 · Жалоба Попробуйте добавить в server_name, свой www хост, и после этого добавить реврайт. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
skeletor Опубликовано 13 сентября, 2012 · Жалоба Помогло, если добавить в apache такое RewriteEngine On RewriteCond %{HTTP_HOST} ^www.domain.com$ [NC] RewriteRule ^(.*)$ http://domain.com$1 [R=301,L] То есть добавил только в апач. nginx без rewrite'ов. Но есть проблема - оно добавляет лишний слеш в конец, и в итоге становиться так: http://domain.com//menu.php. Как побороть ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pchol Опубликовано 13 сентября, 2012 (изменено) · Жалоба Попробуйте все таки через nginx как вам предлагали. На мой взгляд не правильно "проваливать" запросы до апача, для того чтобы опять их редиректнуть на nginx. Как вариант сделать конфигурацию вида server { server_name www.domain.com; rewrite ^(.*) http://domain.com$1 permanent; } server { server_name domain.com; ... } Изменено 13 сентября, 2012 пользователем pchol Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
skeletor Опубликовано 13 сентября, 2012 · Жалоба pchol я пробовал, но к сожалению не получилось Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
voron Опубликовано 13 сентября, 2012 · Жалоба 2skeletor А что не получилось, что наблюдаете и что в логах? Последняя конфигурация, предложенная pchol является рекомендуемой. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
skeletor Опубликовано 14 сентября, 2012 · Жалоба Наблюдаю такую картину: в Firefox'e лишних слешей нет, зато есть в Opera и Chrome. Не знаю с чем может быть связано. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
skeletor Опубликовано 17 сентября, 2012 · Жалоба Всем спасибо, разобрался. Код редиректа, приведённый здесь действительно рабочий. Проблема была в том, что хост с сайтом вообще не инклюдился в nginx. Теперь всё работает. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...