The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"nginx+apache redirect www.domain.com -> domain.com"
Вариант для распечатки  
Пред. тема | След. тема 
Форум WEB технологии (Редирект)
Изначальное сообщение [ Отслеживать ]

"nginx+apache redirect www.domain.com -> domain.com"  +/
Сообщение от skeletor email(ok) on 13-Сен-12, 15:48 
Есть связка nginx+apache. Нужно сделать redirect с www.domain.com на domain.com. Пробовал делать rewrite только на nginx'e - не работает. Добавил ещё и на apache - и получаю зацикливание.
Как правильно сделать редирект в моём случае?
Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "nginx+apache redirect www.domain.com -> domain.com"  +/
Сообщение от parad (ok) on 13-Сен-12, 18:17 
что делал, что не работает?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "nginx+apache redirect www.domain.com -> domain.com"  +/
Сообщение от skeletor email(ok) on 13-Сен-12, 18:20 
> что делал, что не работает?

Пробовал очень много вариантов, так что сюда даже приводить страшно.

Пока вот так сработало.


RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://domain.com$1 [R=301,L]

То есть добавил только в апач. nginx без rewrite'ов. Но есть проблема - оно добавляет лишний слеш в конец, и в итоге становиться так:
http://domain.com//menu.php. Как побороть ?
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "nginx+apache redirect www.domain.com -> domain.com"  +/
Сообщение от parad (ok) on 13-Сен-12, 23:34 

  rewrite ^(/.*)$ http://domain.com$1 permanent;

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "nginx+apache redirect www.domain.com -> domain.com"  +/
Сообщение от PavelR (ok) on 14-Сен-12, 10:12 
> Есть связка nginx+apache. Нужно сделать redirect с www.domain.com на domain.com. Пробовал
> делать rewrite только на nginx'e - не работает. Добавил ещё и
> на apache - и получаю зацикливание.
> Как правильно сделать редирект в моём случае?

В Nginx нужна отдельная секция server {} для www.domain.com в которой написать редирект.
правильный rewrite для этого уже написали выше.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "nginx+apache redirect www.domain.com -> domain.com"  +/
Сообщение от skeletor email(ok) on 14-Сен-12, 13:44 
>> Есть связка nginx+apache. Нужно сделать redirect с www.domain.com на domain.com. Пробовал
>> делать rewrite только на nginx'e - не работает. Добавил ещё и
>> на apache - и получаю зацикливание.
>> Как правильно сделать редирект в моём случае?
> В Nginx нужна отдельная секция server {} для www.domain.com в которой написать
> редирект.
> правильный rewrite для этого уже написали выше.

Не помогло. Причём firefox отображает без лишних слешей, а вот opera, chrome - с ними.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "nginx+apache redirect www.domain.com -> domain.com"  +/
Сообщение от PavelR (ok) on 14-Сен-12, 14:34 
>>> Есть связка nginx+apache. Нужно сделать redirect с www.domain.com на domain.com. Пробовал
>>> делать rewrite только на nginx'e - не работает. Добавил ещё и
>>> на apache - и получаю зацикливание.
>>> Как правильно сделать редирект в моём случае?
>> В Nginx нужна отдельная секция server {} для www.domain.com в которой написать
>> редирект.
>> правильный rewrite для этого уже написали выше.
> Не помогло. Причём firefox отображает без лишних слешей, а вот opera, chrome
> - с ними.

хрустальный шар, в котором я обычно смотрел ваши конфиги и логи запросов, к сожалению упал и разбился. Так что смотрите в них сами.

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "nginx+apache redirect www.domain.com -> domain.com"  +/
Сообщение от skeletor email(ok) on 14-Сен-12, 15:47 
Склеил ваш хрустальный шар и вот, что в нём видел.

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;      &n...
      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;

}


Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "nginx+apache redirect www.domain.com -> domain.com"  +/
Сообщение от PavelR (ok) on 14-Сен-12, 17:08 
> Склеил ваш хрустальный шар и вот, что в нём видел.

Люди, хорош [..censored..] прикидываться.

Я ж русским языком написал:

==cite==
В Nginx нужна отдельная секция server {} для www.domain.com в которой написать редирект.
правильный rewrite для этого уже написали выше.
==cite==

Вы мне на это что ответили ?

==cite==
Не помогло. Причём firefox отображает без лишних слешей, а вот opera, chrome - с ними.
==/cite==

Дальше вы мне приводите свой конфиг.

ТАК ВОТ.
ГДЕ В НЕМ:

- отдельная секция server {} ?
- где в нем вышеупомянутый rewrite ?


Кроме того, вы в лог-то посмотрели?

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "nginx+apache redirect www.domain.com -> domain.com"  +/
Сообщение от skeletor email(ok) on 14-Сен-12, 18:49 
Пробовал вот так, но так как время тестов уже истекло (сайт в продакшине), то пришлось выбросить куски кода, которые для сайта ничего не делают, поэтому и выложил без них. Но я пробовал ваш пример вот так:

server {
        listen XX.XX.XX.XX;
        server_name www.domain.com;
        rewrite ^(/.*)$ http://domain.com$1 permanent;
}

server {

        listen XX.XX.XX.XX;
        server_name domain.com;
        root /usr/local/www/domain.com;
        access_log off;
...


в логах ничего подозрительного.
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "nginx+apache redirect www.domain.com -> domain.com"  +/
Сообщение от PavelR (ok) on 15-Сен-12, 08:29 
> Пробовал вот так, но так как время тестов уже истекло (сайт в
> продакшине), то пришлось выбросить куски кода, которые для сайта ничего не
> делают, поэтому и выложил без них. Но я пробовал ваш пример
> вот так:

теперь идем дальше. Научитесь тестировать редиректы не браузером, а консольными утилитами (curl, wget, GET из lwp-perl, что-то еще ...), или хотя бы кеши сбрасывайте, вкладки/браузеры закрывайте-открывайте, потому что конфиг 100% верен.


Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

11. "nginx+apache redirect www.domain.com -> domain.com"  +/
Сообщение от parad (ok) on 16-Сен-12, 23:25 
он скорее всего забыл убрать редирект в апаче.
и также логи не научился читать.
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

12. "nginx+apache redirect www.domain.com -> domain.com"  +/
Сообщение от parad (ok) on 16-Сен-12, 23:26 
а неработает как? поведение опиши.
то что в логах ничего подозрительного говорит только о том что все работатет как надо.
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

13. "nginx+apache redirect www.domain.com -> domain.com"  +/
Сообщение от skeletor email(ok) on 17-Сен-12, 15:38 
Всем спасибо, разобрался. Код редиректа, приведённый здесь действительно рабочий. Проблема была в том, что хост с сайтом вообще не инклюдился в nginx.
Теперь всё работает.
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру