Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Nginx + Мультиязычность.


Recommended Posts

Здравствуйте. Есть проблема.

Установлен Opencart 2.1 + nginx + php-fpm.

С ЧПУ все работает прекрасно, в т.ч. мультиязычность,но, например при поиске выбрасывает на index.php с аргументами, и в языке по умолчанию все ок, но на любом другом языке - file not found. Что можно сделать?

 

Конфиг

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

	location ~* \.php$ {
		fastcgi_index index.php;
		fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f [email protected]";
		fastcgi_pass unix:/var/www/php-fpm/USER.sock;
		fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$;
		fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
		include fastcgi_params;
	}

UPD. Используется SeoPro

Змінено користувачем lemurio
Надіслати
Поділитися на інших сайтах


18 минут назад, lemurio сказал:

file not found

Наверное нет языкового файла и nginx тут не причем.

Например для русского есть файл catalog/language/ru-ru/product/search.php, для английского catalog/language/en-gb/product/search.php и т.д.

Надіслати
Поділитися на інших сайтах


1 minute ago, i3bepb said:

Наверное нет языкового файла

Файлы присутствуют. Ситуация такая:

https://site.com/search/

https://site.com/ua/search/

Работают, все переводится. Но, при поиске перебрасывает на

https://site.com/index.php?route=product/search&search=TEST

https://site.com/ua/index.php?route=product/search&search=TEST

Первая ссылка работает без проблем, вторая - file not found. Если вручную ввести

https://site.com/search/?search=TEST

https://site.com/ua/search/?search=TEST

Все равно редиректит на /index.php?route

Надіслати
Поділитися на інших сайтах


Аналогично и с продуктами. В общем, при любом прямом обращении к /ua/index.php - file not found. К /index.php проблем нет. Подозреваю что что-то не дописано в конфиге.

Надіслати
Поділитися на інших сайтах


23 минуты назад, lemurio сказал:

 

Ага понятно. Надо подсмотреть в БД чему соответствует https://site.com/ua/search/?search=TEST т.е. он из этого делает запрос на index.php?_route_=ua/search&search=TEST и потом уже движок на основании параметра _route_ по БД получает index.php?route=product/search&search=TEST&lang=ua , т.е. надо понять какой GET параметр отвечает за то какой язык будет использован и потом можно будет либо поменять конфиг nginx-а, либо вообще добавить в БД еще одно правило

Надіслати
Поділитися на інших сайтах


В бд только одна запись - product/search => search 

Если перейти по ссылке index.php?route=product/search&search=TEST&lang=ua  или по index.php?_route_=ua/search&search=TEST то тут же редиректит на /ua/index.php?route=product/search&search=TEST

 

Надіслати
Поділитися на інших сайтах


Есть наблюдение, если в контроллере product/search заменить GET параметр search на searches то все работает в виде /ua/search/?searches=TEST, с разницей что пагинация и ссылки на товары не ЧПУ и так же содержать /ua/index.php что опять же не работает.

Змінено користувачем lemurio
Надіслати
Поділитися на інших сайтах


Да причем здесь opencart
Ошибку 404 (не 500 даже) выдает сервер
Не правильно настроен конфиг nginx - всё, ищите там

Надіслати
Поділитися на інших сайтах

2 minutes ago, markimax said:

Не правильно настроен конфиг nginx - всё, ищите там

Мне идти на форум сисадминов и спрашивать как правильно написать правило для opencart?

Надіслати
Поділитися на інших сайтах


23 минуты назад, lemurio сказал:

В бд только одна запись - product/search => search

А если добавить еще product/search => ua/search ? Должно с языком по умолчанию заработать

Надіслати
Поділитися на інших сайтах


Ну а как он например страницу товара преобразует, он из /ua/ должен как-то получить GET параметр. Страницы товара, например или каталога, то работают на разных языках? Как там получается? Соответствие по записи из БД или как-то в коде?

Змінено користувачем i3bepb
Надіслати
Поділитися на інших сайтах


В БД все прописано в единственном экземпляре, мультиязычность используется та которая из коробки.проблему решил заменой в контроллере GET параметра search на searches. Все работает. Тему можно закрывать, спасибо за помощь.

Надіслати
Поділитися на інших сайтах


1 минуту назад, lemurio сказал:

 мультиязычность используется та которая из коробки.

Из коробки нету такой мультиязычности

 

3 часа назад, lemurio сказал:

Какой модуль используете?
Судя по всему пиратский

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.