Здравствуйте.
При переносе сайта (движок MODx) с Apache на NGINX столкнулся с тем, что URL для английской версии сайта отдают 404 ошибку в то время, как для русской все работает.
URL для русской версии имеют вид
https://site.com/page/ (код ответа сервера 200)
URL для английской версии имеют вид
https://site.com/en/page/ (код ответа сервера 400)
Как настроить формирование URL для английской версии в конфигах виртхоста NGINX?
Конфиг виртхоста
server {
listen 80;
server_name example.com www.example.com;
root /home/sites/example.com;
index index.php;
client_max_body_size 30M;
location / {
root /home/sites/example.com;
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?q=$1 last;
}
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_pass unix:/run/php/php7.2-fpm.sock
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_ignore_client_abort on;
fastcgi_param SERVER_NAME $http_host;
}
location ~ /\.ht {
deny all;
}
}
Частично удалось решить проблему с помощью кода
location ~* ^/(ru|en) {
rewrite ^/(ru|en)?/?(.*)$ /index.php?cultureKey=$1&q=$2 last;
}
Пропала 404 ошибка, но теперь все стили для второй языковой версии хотят загружаться через /en/style.css, а их в той папке нет и не было никогда :(
Если кто знает как помочь - буду благодарен.