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.