nginx map regexp para Magento MAGE_RUN_TYPE baseado em nginx $ http_host e $ uri

1

Estou tentando escrever uma configuração nginx que adiciona um cabeçalho personalizado e passa uma variável usando fastcgi_param com base em duas variáveis que são calculadas usando map, com base em $ uri e $ http_host.

map $uri $STORE_LANGUAGE {
    ~^/products en;
    ~^/de/produkte de;
    ~^/fr/produits fr;
    ~^/hu/termekek hu;
}
map $http_host $MAGE_RUN_CODE {
    www.example.com example_com_;
}

server {
    listen 80;
    add_header mage-run-code $MAGE_RUN_CODE$STORE_LANGUAGE;
    ...
    location ~ \.php$ {
       fastcgi_param MAGE_RUN_CODE $MAGE_RUN_CODE$STORE_LANGUAGE;
       fastcgi_param MAGE_RUN_TYPE store;
}

O objetivo é ser capaz de passar o mage-run-code para o Magento 2.2 via fastcgi_param MAGE_RUN_CODE (e ter o cabeçalho como uma maneira fácil de depurar por enquanto). Desta forma, Magento sabe qual loja visualizar para servir o visitante.

O código acima funciona para www.example.com/products. (Comportamento esperado: example_com_en)

O que preciso alterar no regexp de STORE_LANGUAGE para que www.example.com/products/tshirt.html funcione também?

EDITAR: Para www.example.com/products $ MAGE_RUN_CODE é calculado corretamente ("example_com_") como é $ STORE_LANGUAGE ("en") resultando em "example_com_en".

Para www.example.com/products/tshirt.html $ MAGE_RUN_CODE é calculado corretamente (com base em $ http_host). Mas $ STORE_LANGUAGE retorna vazio. Assim, a combinação de $ MAGE_RUN_CODE $ STORE_LANGUAGE é "example_com_" e não o esperado "example_com_en" para o URL tshirt.html.

    
por Hartwig 11.01.2018 / 10:46

0 respostas

Tags