Здравствуйте, не могу правильно настроить конфиг для корректной работы.
Работает почти все, но когда перехожу на главную, например site.com, кидает на site.com/ru
а нужно чтобы он остался на site.com
Всего 3 языка на сайте: английский, французский и русский. По умолчанию - английский, он отображается без префикса en.
Вот мой конфиг:
server {
listen 80;
server_name site.com www.site.com;
root /var/www/site.com;
index index.php index.html index.htm;
client_max_body_size 30M;
error_log /var/log/nginx/site.error_log notice;
rewrite_log on;
location @modx-rewrite {
rewrite ^/(.*)$ /index.php?q=$1 last;
}
# choose the language that appears first in the accept_language header
if ($http_accept_language ~* "(fr|ru)") {
set $lang $1;
}
location ~ ^/$ {
rewrite ^ $lang/ redirect;
}
location ~ ^/(fr|ru) {
# redirect favicon.ico and assets/* and core/* requests to site root
rewrite ^/(fr|ru)/(favicon.ico|assets.*|core.*)$ /$2 redirect;
# main Babel rewrite
rewrite ^/(fr|ru)/(.*)$ /?cultureKey=$1&q=$2 break;
# MODX rewrite
try_files $uri $uri/ @modx-rewrite;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_pass unix:/var/run/php5-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 / {
try_files $uri $uri/ @modx-rewrite;
}
location ~ /\.ht {
deny all;
}
}