magento armazena as visualizações em subpastas com nginx

1

Alguém por favor pode explicar como eu posso obter o nginx para re-criar uma visão de loja no magento sob sua própria subpasta.

eu tenho uma loja .. com o seguinte código no meu arquivo de configuração nginx.

location ~ \.php$ {
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            include /etc/nginx/fastcgi_params;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param MAGE_RUN_CODE edu_default;
            fastcgi_param MAGE_RUN_TYPE store;
            fastcgi_connect_timeout 60;
            fastcgi_send_timeout 180;
            fastcgi_read_timeout 180;
            fastcgi_buffer_size 256k;
            fastcgi_buffers 4 256k;
            fastcgi_busy_buffers_size 256k;
            fastcgi_temp_file_write_size 256k;
            fastcgi_intercept_errors on;
            fastcgi_param SCRIPT_FILENAME /home/domain here/public_html$fastcgi_script_name;
    }

eu tenho todos os meus arquivos magento na pasta raiz: / home / domain here / public_html

agora eu tenho uma visão de loja que pode ser acessada através de uma sub-pasta / substore /

Mas eu quero que ele seja executado a partir do arquivo magento index.php da pasta raiz. Mas ainda assim todos os links têm a subpasta na URL.

a configuração da visualização real da loja magento está configurada corretamente. Assim, o URL base e o URL do link base são o URL com a subpasta.

todo o conteúdo estático ainda é carregado a partir do domínio raiz sem a subpasta.

agora eu tenho tentado fazer um novo local {} bloquear, mas parece que não consigo trabalhar

eu sei do método syslink, mas quero tentar não fazer isso.

realmente só preciso descobrir como fazer com que todas as urls /subfolder/index.php reescrevam no arquivo index.php raiz no magento enquanto passam o MAGE_RUN_CODE

Acabei de experimentar este bloco de localização abaixo do acima. a URL parece funcionar agora, mas estou recebendo 404 páginas em magento. por isso não deve passar os valores "qual página mostrar" corretamente

location ~ /subfolder/.+\.php$ {
            root /home/domainhere/public_html;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            include /etc/nginx/fastcgi_params;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param MAGE_RUN_CODE storeviewcodehere;
            fastcgi_param MAGE_RUN_TYPE store;
            fastcgi_connect_timeout 60;
            fastcgi_send_timeout 180;
            fastcgi_read_timeout 180;
            fastcgi_buffer_size 256k;
            fastcgi_buffers 4 256k;
            fastcgi_busy_buffers_size 256k;
            fastcgi_temp_file_write_size 256k;
            fastcgi_intercept_errors on;
            fastcgi_param SCRIPT_FILENAME /home/domainhere/public_html$fastcgi_script_name;

UPDATE .1 Ok, então eu descobri que eu preciso usar a seção ...

location @handler {
    rewrite / /subfolder/index.php;
}

mas isso impede que o armazenamento de nível superior não funcione, pois tudo se torna a exibição de loja secundária.

então eu preciso ter regras de reescrita para

rewrite / /index.php;

e

rewrite / /subfolder/index.php;

alguém sabe a maneira correta de fazer isso?

    
por PixelPaul 27.06.2015 / 01:05

1 resposta

0

Eu já vi isso muitas vezes, por que manter várias lojas em subpastas separadas, não é um trabalho subdomínio?

a maneira correta é manter sua loja como está e, usando o menu suspenso, selecionar sua visualização da loja e alterar o URL base ....

então no nginx você talvez precise usar a configuração map ,

map $request_uri $mage_code {
default                     edu_default;
~^/my_other_shop/           edu_special;
}

map $request_uri $mage_type {
default                     edu_default;
~^/my_other_shop/           store;
}

na verdade eu nunca tentei isso antes:)

    
por 27.06.2015 / 20:36