301 Редирект на основании существования document root
Горан Петрыч
norman.k77 at gmail.com
Mon Oct 21 10:08:32 UTC 2013
Добрый день!
Захотелось создать универсальный *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; *
*.......*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20131021/2cc8fd6d/attachment.html>
Подробная информация о списке рассылки nginx-ru