<div dir="ltr"><span style="font-family:arial,sans-serif;font-size:13px">Добрый день!</span><br><div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div>Захотелось создать универсальный <i>server_name ~^(?P<site>.+)$</i>; <i>root /var/www/$site/pub; </i></div>
<div>Все хорошо и работает. Но захотелось пойти дальше: </div><div><br></div><div>Если в /var/www/ лежит фолдер, который начинается <b>с</b> www, например <a href="http://www.site.com">www.site.com</a>, то делать 301 редирект с <a href="http://site.com">site.com</a> -> <a href="http://www.site.com">www.site.com</a></div>
<div><br></div><div>Если же в /var/www/ лежит фолдер, который начинается <b>без </b>www, например <a href="http://site.com">site.com</a>, то делать 301 редирект с <a href="http://www.site.com">www.site.com</a> -> <a href="http://site.com">site.com</a></div>
<div><br></div><div>Т.е. проверять наличие фолдера. Первое, что пришло на ум - это создать выше основной секции, дополнительную:</div><div><br></div><div><div><div><i>server_name ~^(?P<w>www)\.(?P<site>.+)$;</i></div>
<div><i><br></i></div><div><i> if (!-d /var/www/$w.$site/pub) {</i></div><div><i> return 301 http://$site$request_uri;</i></div><div><i> }</i></div><div><i> root /var/www/$site/pub;</i></div></div></div><div><br>
</div><div>Это решает проблему когда нам нужно сделать 301 с <a href="http://www.site.com">www.site.com</a> -> <a href="http://site.com">site.com</a>. </div><div><br></div><div>Прошу помощи в том, как реализовать схему наоборот: 301 с <a href="http://site.com">site.com</a> -> <a href="http://www.site.com">www.site.com</a></div>
<div>Не могу додуматься.</div><div><br></div><div>В данный момент конфиг выглядит так: </div><div><br></div><div><br></div><div><div><i>server_name ~^(?P<w>www)\.(?P<site>.+)$;</i></div><div><i><br></i></div><div>
<i> if (!-d /var/www/$w.$site/pub) {</i></div><div><i> return 301 http://$site$request_uri;</i></div><div><i> }</i></div><div><i> root /var/www/$site/pub;</i></div></div><div><i>......</i></div><div><i><br></i></div>
<div><i><br></i></div><div><i>server_name ~^(?P<site>.+)$</i>; </div><div><i>root /var/www/$site/pub; </i><br></div><div><i>.......</i></div></div>