Page 1 of 1

NGINX+FPM. Редирект с www на без www

Posted: Thu Jun 02, 2016 3:05 pm
by Stan79
Привет!
Сломал мозг, как перенаправлять на домен «с www» на «без www».

A-записи прописаны (@ и www), домен делегирован на Яндекс

При добавлении домена через панель, Веста ставит в таком порядке домены:

Code: Select all

server {
    listen      000.000.000.00:80;
    server_name mydomain.ru www.mydomain.ru;
    root        /home/user/web/mydomain.ru/public_html;
    index       index.php index.html;
...................
Пробовал в начале конфига сайта ставить секцию

Code: Select all

server {
    server_name "~^(www\.)?(.*)$" ;
    return 301 http://$2$request_uri ;
}
нулевой результат

Пробовал так

Code: Select all

server {
    server_name  www.mydomain.ru;
    rewrite ^(.*) http://mydomain.ru$1 permanent;
}

server {
    listen      000.000.000.00:80;
    server_name mydomain.ru;
    root        /home/user/web/mydomain.ru/public_html;
    index       index.php index.html;
и так

Code: Select all

server {
    server_name  www.mydomain.ru;
    return 301 $scheme://mydomain.ru$request_uri;
}

server {
    listen      000.000.000.00:80;
    server_name mydomain.ru;
    root        /home/user/web/mydomain.ru/public_html;
    index       index.php index.html;

Code: Select all

server {
...
server {
    server_name www.mydomain.ru;
    return 301 $scheme://mydomain.ru$request_uri;
}
...
}
Перекидывает на другой домен на этом же IP


Как решить задачу?

Debian 7 x64, Vesta 0.9.8-15

Re: NGINX+FPM. Редирект с www на без www

Posted: Fri Jun 03, 2016 8:02 am
by DevilStar
Аналогично парился с редиректами в условиях VestaCP + php-fpm.

Потом просто перенес управление доменами с yandex на cloudflare, а там уже есть нормальный forwarding. Включил 301 редирект с www на non www, всё работает.

Re: NGINX+FPM. Редирект с www на без www

Posted: Fri Jun 03, 2016 8:04 am
by Stan79
DevilStar wrote:Аналогично парился с редиректами в условиях VestaCP + php-fpm.

Потом просто перенес управление доменами с yandex на cloudflare, а там уже есть нормальный forwarding. Включил 301 редирект с www на non www, всё работает.
То есть проблема в форвардинге Yandex? У меня на паре серверов такая неприятность

Идеальный вариант и вроде самый правильный

Code: Select all

server {
...
   listen      000.000.000.00:80;
    server_name mydomain.ru www.mydomain.ru;
    return 301 $scheme://mydomain.ru$request_uri;
...
}
Но редиректит на другой домен

Пожалуй спрошу у техподдержки Яндекс

Re: NGINX+FPM. Редирект с www на без www

Posted: Sat Jun 04, 2016 6:59 am
by abst
Stan79 wrote:
Но редиректит на другой домен

Пожалуй спрошу у техподдержки Яндекс
Похожая проблема, если что-то вразумительное от саппорта Яндекса узнаете - сообщите, подписался на тему.

Re: NGINX+FPM. Редирект с www на без www

Posted: Sat Jun 04, 2016 7:05 am
by Stan79
abst wrote:
Stan79 wrote:
Но редиректит на другой домен

Пожалуй спрошу у техподдержки Яндекс
Похожая проблема, если что-то вразумительное от саппорта Яндекса узнаете - сообщите, подписался на тему.
Сообщу обязательно!

Re: NGINX+FPM. Редирект с www на без www

Posted: Sat Jun 04, 2016 7:10 am
by Stan79
В панели регистратора, к примеру reg.ru, есть такая штука, но она для переадресации на другой домен, если я понял правильно.

Image

Мне лично пофиг, у меня все проекты без 301 редиректа и прекрасно находятся в топе, но я подозреваю, что СЕОшники устроят панику. И хотелось бы знать на будущее, как решать такие задачи.

Re: NGINX+FPM. Редирект с www на без www

Posted: Sat Jun 04, 2016 5:54 pm
by ananasoviy express
В документации nginx все написано - http://nginx.org/en/docs/http/convertin ... rules.html
Если сайт открывается по www и без, зачем писать в поддержку яндекса, что ты там хочешь услышать?

Re: NGINX+FPM. Редирект с www на без www

Posted: Sat Jun 04, 2016 6:24 pm
by Mr.Erbutw
можно и так в .htaccess

Code: Select all

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

Code: Select all

# Rewrite to no www
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+) [NC]
RewriteRule .* http://%1/$0 [L,R=301]

Re: NGINX+FPM. Редирект с www на без www

Posted: Sat Jun 04, 2016 6:43 pm
by Stan79
Mr.Erbutw wrote:можно и так в .htaccess

Code: Select all

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

Code: Select all

# Rewrite to no www
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+) [NC]
RewriteRule .* http://%1/$0 [L,R=301]
Под NGINX? :)
Он не поддерживает обработку файлов htaccess

Re: NGINX+FPM. Редирект с www на без www

Posted: Sat Jun 04, 2016 7:01 pm
by Stan79
ananasoviy express wrote:В документации nginx все написано - http://nginx.org/en/docs/http/convertin ... rules.html
Если сайт открывается по www и без, зачем писать в поддержку яндекса, что ты там хочешь услышать?
Мужик, где ж ты раньше был:) Спасибо, что ткнул носом, не нашёл этой страницы.

Итак, решение:

Code: Select all

server {
    listen      000.000.000.000:80;
    server_name  www.mydomain.com;
    return       301 http://mydomain.com$request_uri;
}

server {
    listen      000.000.000.000:80;
    server_name mydomain.com;
    root        /home/user/web/mydomain.com/public_html;
....................................