Multilingue magasin comme un lien symbolique sous-répertoire sur nginx retourner "pas de route à la page'
-
12-12-2019 - |
Question
nous avons besoin de mettre en place nos multi-langue store en utilisant le subdirectory/symlink
la méthode décrite ici.(lire pourquoi @ en bas)
Comment nous l'avons fait.
Nous avons copié index.php dans un sous-répertoire et un lien symbolique de tous les dossiers.L' base url
a été mis à domain.com/en
Problème/Question Maintenant quand je l'ouvre domain.com/en je peux voir le site et il montre la version anglaise.La seule chose c'est que toutes les catégories et les liens vers les produits produire une "pas de route à la page' erreur.Au lieu de montrer la catégorie ou le produit.Maintenant, comment cela peut-il être?
Exemple
Donc https://domain.com/en/funkyshoes
ne pas ouvrir la catégorie funkyshoes, et ni ne funkyshoes https://domain.com/funkyshoes
pour cette question.https://domain.com/en/funkyshoes
retourne => no route to page
https://domain.com/funkyshoes
retourne => https://domain.com/en
pourquoi pas?parce que nous avons plus de 1 multistore et ne peut pas donner de chaque magasin, une lang store_code comme en/de/fr & nous avons aussi un multistore avec différents domaines par magasin et l'autre à l'aide de la /en /de /fr méthode dans le domaine principal.
La solution 2
Une bien meilleure solution est:
location / {
try_files $uri $uri/ @rewrite;
}
location @rewrite {
rewrite /(../)? /$1index.php?$args;
}
parce que nous avons eu certaines règles d'emplacement pour catalogue|caisse|client.Le problème étant que thay toutes référencées @réécriture - de cette façon, nous avons dû réécrire TOUS les emplacement des commandes qui ont été mis en place pour également avoir un match pour /fr et plus tard /fr et /de .....
Donc nous avons eu la plus simple de secours réécrire ce test d'abord et ensuite pour /(code à deux lettres) ....et réécrit basé sur
semble bien fonctionner
En outre, le store_code de recherche doit être modifiée.En raison de la /en de la http_host variable ou variable de serveur de ne plus travailler.
Une solution peut être trouvée ici:https://stackoverflow.com/questions/30078679/nginx-conf-w-multiple-maps-to-same-variable
Autres conseils
C'est un NGINX problème.
En ajoutant ceci à un fichier conf résolu notre problème
location /en {
rewrite ^/en(.*)$ /en/index.php last;
}