Tienda multilingüe como subdirectorio con enlace simbólico en nginx que devuelve 'no hay ruta a la página'

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

Pregunta

necesitábamos configurar nuestra tienda multilingüe usando el subdirectory/symlink método descrito aquí.(lea por qué @ abajo)

Cómo lo hicimos. Copiamos index.php a un subdirectorio y vinculamos simbólicamente todas las carpetas.El base url estaba establecido en domain.com/en

Problema/PreguntaAhora, cuando abro dominio.com/en, puedo ver el sitio web y muestra la versión en inglés.Lo único es que todos los enlaces de categorías y productos producen un error de "no hay ruta a la página".En lugar de mostrar la categoría o producto.¿Cómo puede ser esto?

EjemploEntonces https://domain.com/en/funkyshoes no abre la categoría funkyshoes, y funkyshoes tampoco https://domain.com/funkyshoes para esa materia.https://domain.com/en/funkyshoes devuelve => no route to page https://domain.com/funkyshoes devuelve => https://domain.com/en


¿por qué no?porque tenemos más de 1 multitienda y no podemos darle a cada tienda un código de tienda de idioma como en/de/fr y también tenemos una multitienda con diferentes dominios por tienda y la otra usando el método /en, /de, /fr del dominio principal .

¿Fue útil?

Solución 2

Una solución aún mejor es:

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

porque teníamos algunas reglas de ubicación especiales para el catálogo|pago|cliente.El problema es que todos hacían referencia a @rewrite; de ​​esta manera tuvimos que reescribir TODOS los comandos de ubicación que fueron configurados para tener también una coincidencia separada para /en y posteriormente /fr y /de...

Así que se nos ocurrió la reescritura alternativa más simple: prueba primero para / y luego para /(código de dos letras) ....y reescribe basado en eso

parece funcionar bien

Además, es necesario modificar la búsqueda de store_code.Debido a /en, la variable http_host o la variable del servidor ya no funcionan.

Una posible solución se puede encontrar aquí:https://stackoverflow.com/questions/30078679/nginx-conf-w-multiple-maps-to-same-variable

Otros consejos

Este es un problema de NGINX.

Agregar esto a un archivo conf resolvió nuestro problema

location /en {
 rewrite ^/en(.*)$ /en/index.php last;
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top