Здравствуйте! Имеется на сервере проект на Evolution. Его расположение:
/var/www/sitename/
Работает на апаче через proxy_pass в конфиге сайта nginx. Возникла необходимость создания вложенного проекта на MODX Revolution внутри этого проекта с настройкой ЧПУ. Расположение нового проекта такое:
/var/www/sitename/project/
Для работы на MODX Revo необходим php с версией не ниже 7.3, на апаче установлена версия ниже. Менять настройки апача нам не нужно, поэтому новый проект будет работать на nginxе. Для того, чтобы новый проект выполнялся на php 7.3, добавил в конфиг сайта:
<pre>
location /project {
index index.php;
location ~ \.php$ {
try_files $uri = 404;
fastcgi_split_path_info ^(.+\.php)(.*)$;
include fastcgi_params;
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_$
}
}
</pre>
В результате чего новый проект отлично заработал на php 7.3.
И далее нам нужно настроить ЧПУ в конфиге nginx, чтобы он корректно заработал. Вот тут и возникла проблема. добавил в конфиг:
<pre>
location /project {
try_files $uri $uri/ @rewrite;
index index.php;
error_log /var/log/nginx/sites/sitename.project.error.log;
location ~ \.php$ {
try_files $uri = 404;
fastcgi_split_path_info ^(.+\.php)(.*)$;
include fastcgi_params;
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_$
}
}
location @rewrite {
rewrite ^/(.*)$ /project//index.php?q=$1;
}
</pre>
В итоге ЧПУ работает, однако при просмотре ресурсов (например, news) генерируется url:
sitename/project/project/news
с ошибкой 404. Если вручную в адресной строке изменить url на:
sitename/project/news
, то всё работает нормально.
Собственно, понятно, что конфиг настроен неправильно. Я не силён в настройке nginx, поэтому хочу обратиться к вам с вопросом, как правильно настроить конфиг для корректной работы ЧПУ.
P.S. В системных настройках включены дружественные url, включены вложенные url, отключен строгий режим и заморозка.
Завгородний Дмитрий 24.07.2020 15:36 #
Первый раз на этом форуме задаю вопрос. Не знал, что в пред осмотре в поле «code» тэг «pre» обрабатывается, а после публикации — нет. И ещё заметил, что допустил опечатку в
Там вместо должно быть
Емелин Евгений 26.07.2020 11:12 #
Может проще было сделать, поддоменам папки вот такого вида:
/var/www/project.sitename/
Завгородний Дмитрий 27.07.2020 09:58 #
Завгородний Дмитрий 30.07.2020 12:39 #
И конфигурационный файл полностью для project выглядит так:
Для корректной работы необходимо отключить вложенные url в настройках дружественных url MODX. Работает даже с теми ресурсами, которые не являются дочерними ресурсу главной страницы.
Если кто-то столкнётся с такой же или похожей проблемой, надеюсь, это поможет.