@vadimstroganov

Как исправить конфиг nginx для modx+babel?

Здравствуйте, не могу правильно настроить конфиг для корректной работы.

Работает почти все, но когда перехожу на главную, например 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;
    }
}
  • Вопрос задан
  • 1006 просмотров
Пригласить эксперта
Ответы на вопрос 1
sim3x
@sim3x
подума, что может означать
# choose the language that appears first in the accept_language header
    if ($http_accept_language ~* "(fr|ru)") {
        set $lang $1;
    }

    location ~ ^/$ {
        rewrite ^ $lang/ redirect;
    }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы