Многоязычное хранилище в виде подкаталога с символической ссылкой на nginx, возвращающее «нет маршрута на страницу»

magento.stackexchange https://magento.stackexchange.com//questions/64702

Вопрос

нам нужно было настроить наш многоязычный магазин с помощью subdirectory/symlink описан метод здесь.(прочитайте, почему @ внизу)

Как мы это сделали. Мы скопировали index.php в подкаталог и связали все папки символическими ссылками.А base url был настроен на domain.com/en

Проблема/вопросТеперь, когда я открываю домен.com/en, я вижу сайт и показывает английскую версию.Единственное, все ссылки на категории и продукты выдают ошибку «нет пути к странице».Вместо показа категории или продукта.Как это может быть?

ПримерТак https://domain.com/en/funkyshoes не открывает категорию funkyshoes, как и funkyshoes https://domain.com/funkyshoes в этом отношении.https://domain.com/en/funkyshoes возвращает => no route to page https://domain.com/funkyshoes возвращает => https://domain.com/en


почему нет?потому что у нас более одного мультимагазина и мы не можем присвоить каждому магазину языковой код store_code, например en/de/fr, а также у нас есть один мультимагазин с разными доменами для каждого магазина, а другой использует метод /en, /de, /fr из основного домена .

Это было полезно?

Решение 2

Еще лучшее решение:

location / { try_files $uri $uri/ @rewrite; } location @rewrite { rewrite /(../)? /$1index.php?$args; }

потому что у нас были особые правила расположения для каталога|кассы|клиента.Проблема в том, что все они ссылались на @rewrite - таким образом нам пришлось переписать ВСЕ команды определения местоположения, которые были настроены, чтобы также иметь отдельное соответствие для /en и более поздних /fr и /de .....

Итак, мы придумали простейший запасной вариант: переписать этот тест сначала для /, а затем для / (двухбуквенный код)....и переписывает на основе этого

кажется, работает нормально

Кроме того, необходимо изменить поиск store_code.Из-за /en переменная http_host или переменная сервера больше не работают.

Возможное решение можно найти здесь:https://stackoverflow.com/questions/30078679/nginx-conf-w-multiple-maps-to-same-variable

Другие советы

Это проблема Nginx.

Добавление этого в файл конфигурации решило нашу проблему.

location /en {
 rewrite ^/en(.*)$ /en/index.php last;
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top