Loja multilíngue como subdiretório com link simbólico no nginx retornando 'nenhuma rota para a página'

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

Pergunta

precisávamos configurar nossa loja multilíngue usando o subdirectory/symlink método descrito aqui.(leia por que @ bottom)

Como fizemos isso. Copiamos index.php para um subdiretório e vinculamos simbolicamente todas as pastas.O base url foi definido para domain.com/en

Problema/PerguntaAgora, quando abro domain.com/en, posso ver o site e ele mostra a versão em inglês.A única coisa é que todos os links de categorias e produtos produzem um erro “sem rota para a página”.Em vez de mostrar a categoria ou produto.Agora, como pode ser isso?

ExemploEntão https://domain.com/en/funkyshoes não abre a categoria funkyshoes, e nem funkyshoes https://domain.com/funkyshoes para esse assunto.https://domain.com/en/funkyshoes retorna => no route to page https://domain.com/funkyshoes retorna => https://domain.com/en


por que não?porque temos mais de 1 multistore e não podemos fornecer a cada loja um store_code lang como en/de/fr e também temos um multistore com domínios diferentes por loja e o outro usando o método /en, /de, /fr do domínio principal .

Foi útil?

Solução 2

Uma solução ainda melhor é:

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

porque tínhamos algumas regras de localização especiais para catalog|checkout|customer.O problema é que todos referenciaram @rewrite - desta forma tivemos que reescrever TODOS os comandos de localização que foram configurados para também ter uma correspondência separada para /en e posteriormente /fr e /de .....

Então, criamos a reescrita alternativa mais simples que testa primeiro para / e depois para /(código de duas letras) ....e reescreve com base nisso

parece funcionar bem

Além disso, a pesquisa store_code precisa ser alterada.Por causa do /en, a variável http_host ou a variável do servidor não funcionam mais.

Uma possível solução pode ser encontrada aqui:https://stackoverflow.com/questions/30078679/nginx-conf-w-multiple-maps-to-same-variable

Outras dicas

Este é um problema do NGINX.

Adicionar isso a um arquivo conf resolveu nosso problema

location /en {
 rewrite ^/en(.*)$ /en/index.php last;
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top