Um cliente deseja que sua loja de armazenamento múltiplo seja configurada da seguinte maneira:
- http://www.domain1.org/de/ -> website 1, visualização da loja 1
- http://www.domain1.org/en/ -> website 1, visualização da loja 2
- http://www.domain1.ch/de/ -> website 2, visualização da loja 3
- http://www.domain1.ch/fr/ -> website 2, visualização da loja 4
- http://www.domain1.ch/it/ -> website 2, visualização da loja 5
- ...
Este é um exemplo, mas pode haver muitas subpastas diferentes. Qual é a melhor abordagem para lidar com subpastas diferentes para diferentes visualizações de loja / sites?
Eu sei que uma solução é criar subpastas chamadas etc. de
, en
e copiar o index.php e .htaccess nas subpastas correspondentes.
Também pode haver algumas soluções alternativas (links simbólicos para a configuração index.php, vHost em vez de usar .htaccess) para minimizar a duplicação de arquivos, mas eu gostaria de encontrar uma solução em que não precise fazer nenhuma alteração no sistema de arquivos, mas apenas lidar com tudo por configuração.
ATUALIZAR
Verificamos com o suporte da empresa que a melhor maneira de fazer isso é criando subpastas.
Acabamos fazendo assim:
- Crie um diretório "languagefolders"
- Criou uma cópia do index.php dentro do diretório, juntamente com um .htaccess ajustado e links simbólicos para as pastas Magento (app /, errors /, ...)
- Criou links simbólicos "de", "en" etc. dentro do diretório raiz do Magento, apontando para o diretório "languagefolders"
Dessa forma, podemos adicionar um novo idioma criando um novo link simbólico (por exemplo, "fr").
fonte
Respostas:
É muito fácil veicular vários domínios / caminhos com base em URLs. Como mencionado, a configuração mais fácil (somente configuração) é possível quando os
core/store
códigos exclusivos podem ser usados no caminho como subpastas . Isso requer um dos seguintes:Em relação ao item 3: desde o 1.4 Magento, foi possível permitir ao servidor da Web determinar o contexto de execução ( site ou loja ), bem como o código específico que deveria ser usado. Do index.php :
Enquanto as variáveis de ambiente são usadas para inicializar o aplicativo, é possível influenciar o sistema antes que o PHP acelere. Com o Apache,
mod_rewrite
isso pode ser feito para subpastas com alguns truques:O Apache é instável com variáveis de ambiente e subpastas, como demonstrado por esta excelente resposta do SO . As duas linhas iniciais resultam
$_SERVER["REDIRECT_MAGE_RUN_CODE"] = 'deutsch';
enquanto as duas últimas fornecem o necessário$_SERVER["MAGE_RUN_CODE"] = 'deutsch';
. Existem muitos outros truques, mas o que foi dito acima já me mordeu antes.O objetivo final deve ser a detecção inicial, tanto quanto for razoável (preocupações com o geoip + vários idiomas), enquanto faz com que o usuário defina o cookie da loja que pode ser usado para ignorar / percorrer a lógica nas solicitações subsequentes.
fonte
mode_rewrite
) com base emHTTP_HOST
+ nível subpasta 1.Se os URLs recuados (subpastas) puderem ter o mesmo nome que os códigos de loja (por que não?), Você poderá simplesmente ativar
Configuration > Web > Url options > Add Store Code to Urls
.fonte
Add store codes to url
storeview? magento.stackexchange.com/questions/60686/... = suponhamos que há uma multistore com domínios sep, os outros usos / pt e / fracabamos fazendo exatamente isso
Verificamos com o suporte da empresa que a melhor maneira de fazer isso é criando subpastas.
No back-end, configuramos a loja
base url
comodomain.com/en
Se você usar o nginx, será necessária uma atualização para o processamento da sua localização para processar o index.php também na nova subpasta. Isso precisa ser feito para cada nova pasta de tradução
fonte
location @rewrite { rewrite /(../)? /$1index.php; }
Há uma entrada na base de conhecimento oficial do Magento que descreve exatamente isso.
Caso você esteja trabalhando com o Apache, verifique se todas as entradas do Host virtual (para cada domínio) estão apontando para a mesma raiz do documento onde está a instalação do Magento. Isso é para vários domínios.
A próxima (e última) coisa é o .htaccess na mesma pasta de instalação do Magento. .htaccess é um poderoso arquivo de configuração no nível do diretório em que você pode definir ações-regras por cada solicitação do servidor. Portanto, você precisará lidar com todas as diferentes ações (sub) domínios / pastas e definir as variáveis de servidor corretas que o Magento usa no estágio de inicialização.
Depois de concluir a configuração do servidor, você terá que definir caminhos base diferentes para cada loja no Magento admin (sistema - configuração - geral - web).
Portanto, certifique-se de seguir o guia oficial (que também é o caminho preferido) e as coisas devem funcionar sem problemas.
fonte
Primeiro você precisa fazer algumas configurações no painel de administração do Magento, depois criar um subdiretório e mover o index.php e o .htaccess para o subdiretório, e fazer algumas pequenas alterações no index.php.
Aqui está um exemplo completo de como fazer isso.
fonte