Вопрос такого плана:
Имеем проксирующий nginx, передающий запросы на apache, расположенный на отдельной vps-ке.
В конфиге nginx-а в качестве server_name прописано несколько доменов
Требуется осуществлять 301-ый редирект со страниц вида mysite.ru/catalog на страницы вида www.mysite.ru/catalog
Сейчас редирект идет так:
mysite.com/catalog -> www.mysite.com
Каким образом можно настроить nginx и apache, чтобы перенаправление шло правильно ?
Пробовал прописать в конфиге nginx в секции server:
rewrite ^(.*)$ http://www.mysite.com$1 permanent;
Но это вызывает зацикливание
Комментарии
С nginx не имел дело, но если не критично,то описанные выше действия можно сделать силами апача. В файле .htaccess ,который идет в друпале, раскоментировать строчки из секции
<IfModule mod_rewrite.c>
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
К сожалению не все так просто, в .htacess данные редиректы итак прописаны
Тут варианта 2 остается: либо настройки dns, либо конфиг nginx...
На dns стоит редирект mysite.com -> www.mysite.com, видимо это и заставляет редиректить на www.mysite.com при обращении к url вида mysiste.com/*
Но как от этого избавиться я незнаю
Можно поподробнее про ДНС редирект!
В ДНС был лишний редирект, из-за него все запросы, приходящие на адреса типа mysite.ru/* перенаправлялись на адрес www.mysite.ru (главная страница). Теперь по идее надо NGinx-ом сделать редирект, но как его прописать грамотно в конфиге, я не могу понять
Пытался еще сделать так:
rewrite ^ http://www.mysite.ru$request_uri? permanent; #301 redirect
Но при обращении к страницам опять же выходит зацикливание
Или я чего-то туплю, но никогда не слышал про ДНС редирект. У вас наверняка в апаче этот редирект.
Да дело не в DNS. Сейчас редирект, прописаный в .htaccess не срабатывает, подозреваю что из-за nginx-a, а как прописать правильно на нем редирект, я не могу понять
Ой, я дурааак )))
Проблема была в лишнем алиасе, прописаном в httpd.conf =)))
))) Главное что нашел. А ДНС редиректа, действительно вроде не существует. По крайней мере не могу себе представить как это сделать.
За редиректы всегда отвечал веб сервер, в данном случае Апач.
И настройки файла .htaccess, обрабатываются модулем mod_rewrite. А его в свою очередь перекрывают "родные" настройки Апача, которые имеют больший приоритет.