Конфигурация OpenCart 3 nginx для мультиязычности - PullRequest
1 голос
/ 25 мая 2020

У меня есть конфигурация

    location / {
        try_files $uri $uri/ @opencart;
        location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ {
            expires     max;
        }

        location ~ [^/]\.php(/|$) {
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            if (!-f $document_root$fastcgi_script_name) {
                return  404;
            }

            fastcgi_pass    127.0.0.1:9002;
            fastcgi_index   index.php;
            include         /etc/nginx/fastcgi_params;
        }
    }

    location @opencart {
        rewrite ^/(.+)$ /index.php?_route_=$1 last;
    }

, она работает нормально, но я хочу добавить многоязычную поддержку из URL-адреса, например:

location /en {
  rewrite ^/en/([^?]*) /index.php?_route_=$1&lang=en break;
}

location /es {
  rewrite ^/es/([^?]*) /index.php?_route_=$1&lang=es break;
}

Получить язык в качестве первого параметра URL , и поместите его как параметр получения &lang=es в index. php. Как правильно это сделать?

1 Ответ

2 голосов
/ 25 мая 2020

Я не думаю, что есть способ сделать этот многоязычный постфикс с помощью конфигураций nginx (или даже apache). Существует множество соединений и маршрутов вокруг основной глобальной константы HTTP_SERVER (или HTTPS_SERVER). Максимум, что вы получите - 301 редирект при каждой загрузке страницы. Что неприемлемо для поисковых систем.

Я предлагаю вам попробовать дерево различных способов решить этот бивень:

  1. Переписать system / library / url. php или каталог / контроллер / запуск / запуск. php. У вас нет точного кода, но если вы знакомы с php - маршрутизацией URL, вы можете найти в этих файлах. Хорошее руководство здесь Как установить язык через URL-адрес в opencart

  2. Используйте некоторые бесплатные или платные модули с торговой площадки по запросу «код языка в URL-адресе».

  3. Если вы используете SEO URL - есть многоязычные URL для каждого продукта, категории et c. Для них вам не нужен постфикс, все URL-адреса могут быть многоязычными и уникальными. enter image description here Если у вас нет этих функций - просто скачайте отсюда, это бесплатно https://www.opencart.com/index.php?route=marketplace / extension / info & extension_id = 32788

...