Горан Петрыч
October 21, 2013 06:10AM
Добрый день!

Захотелось создать универсальный *server_name ~^(?P<site>.+)$*; *root
/var/www/$site/pub; *
Все хорошо и работает. Но захотелось пойти дальше:

Если в /var/www/ лежит фолдер, который начинается *с* www, например
www.site.com, то делать 301 редирект с site.com -> www.site.com

Если же в /var/www/ лежит фолдер, который начинается *без *www, например
site.com, то делать 301 редирект с www.site.com -> site.com

Т.е. проверять наличие фолдера. Первое, что пришло на ум - это создать выше
основной секции, дополнительную:

*server_name ~^(?P<w>www)\.(?P<site>.+)$;*
*
*
* if (!-d /var/www/$w.$site/pub) {*
* return 301 http://$site$request_uri;*
* }*
* root /var/www/$site/pub;*

Это решает проблему когда нам нужно сделать 301 с www.site.com -> site.com.

Прошу помощи в том, как реализовать схему наоборот: 301 с site.com ->
www.site.com
Не могу додуматься.

В данный момент конфиг выглядит так:


*server_name ~^(?P<w>www)\.(?P<site>.+)$;*
*
*
* if (!-d /var/www/$w.$site/pub) {*
* return 301 http://$site$request_uri;*
* }*
* root /var/www/$site/pub;*
*......*
*
*
*
*
*server_name ~^(?P<site>.+)$*;
*root /var/www/$site/pub; *
*.......*
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

301 Редирект на основании существования document root

Горан Петрыч October 21, 2013 06:10AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 279
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready