Page 1 of 2

Как настроить ЧПУ на Nginx?

Posted: Tue Apr 05, 2016 12:53 pm
by David1925
Всем привет. Вопрос к коллегам, хорошо разбирающимся в настройках VPS.

У меня VPS на Digital Ocean.
ОС - Debian 8.3 x32

Установил панель Vestа по таким параметрам - http://prntscr.com/aod3zo
При такой конфигурации не работают ЧПУ на сайтах. Выяснилось, что Nginx не читает htaccess, соответственно mod_rewrite не работает. При открытии любого url на сайте возникает ошибка 404 - http://prntscr.com/aod5zd

Нагуглил информацию, что нужно в nginx.conf прописать дополнительный код.
Пример -

https://www.youtube.com/watch?v=NNYmScvMGEU

Проблема в том, что у меня отличное содержание файла nginx.conf, поэтому точно не знаю, что куда прописывать.

Кто сталкивался с такой проблемой? Подскажите как решить.

Re: Как настроить ЧПУ на Nginx?

Posted: Tue Apr 05, 2016 1:55 pm
by skurudo
David1925 wrote: Установил панель Vestа по таким параметрам - http://prntscr.com/aod3zo
Забегая вперед спрошу, но зачем? Новый опыт, приключения?
David1925 wrote:При такой конфигурации не работают ЧПУ на сайтах. Выяснилось, что Nginx не читает htaccess, соответственно mod_rewrite не работает.
Не совсем такой порядок рассуждений.
В установке нет вебсервера apache с модулем mod_rewrite, потому не обрабатывается htaccess и потому кривое ЧПУ, которое требует htaccess не работает. (замечу, что правильное ЧПУ не просит себе htaccess, а реализовывает роуты самостоятельно).
David1925 wrote:Нагуглил информацию, что нужно в nginx.conf прописать дополнительный код.
Проблема в том, что у меня отличное содержание файла nginx.conf, поэтому точно не знаю, что куда прописывать.
Путей решений традиционно несколько:
- поправить шаблоны или создать новый (при редактировании домена у вас есть несколько из коробки)... можно попробовать сделать под свою CMS, они лежат в /usr/local/vesta/data/templates/web/

- способ проще - править конфиг nginx, но править нужно не центральный конфиг из /etc/nginx/nginx.conf, а пользовательский, который лежит /home/admin/conf/web/
David1925 wrote:Кто сталкивался с такой проблемой?
Это не баг, это фича. (c)

Re: Как настроить ЧПУ на Nginx?

Posted: Thu Apr 14, 2016 8:15 pm
by random
Загугли, есть сервисы переводящие содержимое htaccess в содержимое для конфига nginx

Re: Как настроить ЧПУ на Nginx?

Posted: Thu Apr 14, 2016 8:30 pm
by bbk
нужно добавить возможность это делать из панели

Re: Как настроить ЧПУ на Nginx?

Posted: Fri Apr 15, 2016 11:01 am
by Agat
David1925 wrote: Кто сталкивался с такой проблемой? Подскажите как решить.
Посмотрите в топике http://forum.vestacp.com/viewtopic.php? ... 467#p42467
Я указал шаблон пользовательских настроек nginx которые прекрасно отрабатывают ЧПУ. Просто подставьте свои значения IP и имени сайта.

Re: Как настроить ЧПУ на Nginx?

Posted: Fri Apr 15, 2016 12:26 pm
by skurudo
random wrote:Загугли, есть сервисы переводящие содержимое htaccess в содержимое для конфига nginx
Только они работают не всегда корректно.

Re: Как настроить ЧПУ на Nginx?

Posted: Fri Apr 15, 2016 12:29 pm
by skurudo
bbk wrote:нужно добавить возможность это делать из панели
Стоит добавить идею:
https://bugs.vestacp.com

Re: Как настроить ЧПУ на Nginx?

Posted: Fri Apr 15, 2016 12:51 pm
by random
skurudo wrote:
random wrote:Загугли, есть сервисы переводящие содержимое htaccess в содержимое для конфига nginx
Только они работают не всегда корректно.
Да, я согласен. Но перевести часть отвечающую за ЧПУ - более менее могут. Да и посмотрев пример можно поправить самостоятельно.
Но лично я ими не пользовался, просто подумал что это поможет ТС.

Re: Как настроить ЧПУ на Nginx?

Posted: Fri Apr 15, 2016 12:57 pm
by skurudo
random wrote:Да и посмотрев пример можно поправить самостоятельно.
Сомневаюсь, что можно так быстро разобраться в регулярках :)
Вообще приложение должно уметь разруливать, иначе мрак и падение.

Re: Как настроить ЧПУ на Nginx?

Posted: Fri Apr 15, 2016 1:02 pm
by random
skurudo wrote:
random wrote:Да и посмотрев пример можно поправить самостоятельно.
Сомневаюсь, что можно так быстро разобраться в регулярках :)
Вообще приложение должно уметь разруливать, иначе мрак и падение.
Это уже от человека зависит. Если не разбирается в регулярках то стоит задуматься нужен ли ему nginx.