Здравствуйте!
Шаблон yii2 advanced:
backend: /var/www/site.ru/advanced/backend/
frontend: /var/www/site.ru/advanced/frontend/
Доступ на backend должен быть по корню сайта:
https://site.ru
На frontend так:
https://site.ru/public
Nginx как то настроил и бэкенд работает нормально, проблема на фронте - главная страница (
https://site.ru/public/) открывается, а вот если перейти дальше, например
https://site.ru/public/site/about то почему то случается 302 редирект на бэкенд.
конфиг nginx сейчас такой (настоящий домен конечно заменен):
server {
server_name site.ru www.site.ru;
charset off;
index index.php index.html;
disable_symlinks if_not_owner from=$root_path;
include /etc/nginx/vhosts-includes/*.conf;
include /etc/nginx/vhosts-resources/site.ru/*.conf;
include /etc/nginx/users-resources/www-root/*.conf;
access_log /var/www/httpd-logs/site.ru.access.log;
error_log /var/www/httpd-logs/site.ru.error.log notice;
ssi on;
set $root_path /var/www/site.ru/advanced/backend/web;
root $root_path;
gzip on;
gzip_comp_level 5;
gzip_disable "msie6";
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/svg+xml;
# Location для backend (все остальное)
location / {
location ~ [^/]\.ph(p\d*|tml)$ {
try_files /does_not_exists @php;
}
location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf|webp|woff|woff2)$ {
expires 24h;
}
# ЧПУ для backend
try_files $uri $uri/ /index.php?$args;
}
# Location для frontend (/public)
location /public {
alias /var/www/site.ru/advanced/frontend/web;
index index.php;
# Статические файлы
location ~* \.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf|webp|woff|woff2)$ {
expires 24h;
try_files $uri =404;
}
# PHP файлы
location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_index index.php;
fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f webmaster@site.ru";
fastcgi_pass unix:/var/www/php-fpm/1.sock;
try_files $uri =404;
}
# ЧПУ для frontend
try_files $uri $uri/ /public/index.php?$args;
}
location @php {
include /etc/nginx/vhosts-resources/site.ru/dynamic/*.conf;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f webmaster@site.ru";
fastcgi_pass unix:/var/www/php-fpm/1.sock;
fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$;
try_files $uri =404;
include fastcgi_params;
}
listen x.x.x.x:443 ssl;
ssl_certificate "/var/www/httpd-cert/www-root/site.ru_le2.crt";
ssl_certificate_key "/var/www/httpd-cert/www-root/site.ru_le2.key";
ssl_ciphers EECDH:+AES256:-3DES:RSA+AES:!NULL:!RC4;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
add_header Strict-Transport-Security "max-age=31536000;";
ssl_dhparam /etc/ssl/certs/dhparam4096.pem;
}
Или проблема не в nginx, а в конфиге yii?
/backend/config/main.php:
return [
....
'id' => 'app-backend',
'homeUrl' => 'https://site.ru',
...
'aliases' => [
'@baseurl' => 'https://site.ru/'
],
...
'components' => [
'request' => [
'csrfParam' => '_csrf-backend',
'baseurl' => '',
],
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
]
..
/frontend/config/main.php:
return [
....
'id' => 'app-frontend',
'homeUrl' => 'https://site.ru/public',
...
'aliases' => [
'@baseurl' => 'https://site.ru/public/'
],
...
'components' => [
'request' => [
'csrfParam' => '_csrf-frontend',
'baseUrl' => '/public',
],
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'' => 'site/index',
'index' => 'site/index',
],
],
...