Negozio multilingua come sottodirectory symlink su NginX che ritorna 'nessun percorso per pagina "
-
12-12-2019 - |
Domanda
Avevamo bisogno di impostare il nostro Multi Language Store utilizzando il metodo subdirectory/symlink
descritto qui . (Leggi perché @ in basso)
Come abbiamo fatto.
Abbiamo copiato index.php in una sottodirectory e su tutte le cartelle symlink. Il base url
è stato impostato su domain.com/en
Problema / Domanda Ora quando apro Domain Domain.com/en posso vedere il sito Web e mostra la versione inglese. L'unica cosa è che tutte le categorie e i collegamenti del prodotto producono un errore "Nessun percorso verso la pagina". Invece di mostrare la categoria o il prodotto. Ora come può essere?
Esempio
Quindi https://domain.com/en/funkyshoes
non apri la categoria Funkyshoes, e nemmeno Funkyshoes https://domain.com/funkyshoes
per quella materia.
https://domain.com/en/funkyshoes
Returns=> no route to page
https://domain.com/funkyshoes
Returns=> https://domain.com/en
.
Perché no? Perché abbiamo più di 1 multistore e non possiamo dare a ogni negozio a Lang Store_Code come EN / DE / FR e anche un multistore con diversi domini per negozio e l'altro utilizzando il metodo / en, / de, fr dal dominio principale .
Soluzione 2
Una soluzione ancora migliore è:
location / {
try_files $uri $uri/ @rewrite;
}
location @rewrite {
rewrite /(../)? /$1index.php?$args;
}
Perché abbiamo avuto alcune regole di posizione speciali per il catalogo | checkout | cliente.Il problema è che tutti referenziati @rewrite - in questo modo abbiamo dovuto riscrivere tutti i comandi della posizione che sono stati impostati per avere anche una partita separata per / en e successiva / fr e / de .....
Quindi siamo venuti con il più semplice riscrittura di fallback che prova prima per / e poi per / (codice a due lettere) .... e riscrivi in base a quello
sembra funzionare bene
Inoltre, la ricerca Store_Code deve essere modificata.A causa del / it la variabile http_host o la variabile del server non funzionano più.
Una possibile soluzione può essere trovata qui: https://stackoverflow.com/questions/30078679/uncinx-conf-w-multipli-maps-to-uguale-variabile
Altri suggerimenti
Questo è un problema nginx.
Aggiunta di questo a un file Conf ha risolto il nostro problema
location /en {
rewrite ^/en(.*)$ /en/index.php last;
}
.