Назад | Перейти на главную страницу

Magento хранит представления в подпапках с помощью nginx

Может кто-нибудь объяснить, как я могу заставить nginx повторно распознавать вид магазина в magento в своей собственной подпапке.

У меня есть магазин ... со следующим кодом в моем файле конфигурации 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;
    }

у меня все мои файлы magento находятся в корневой папке: / home / domain здесь / public_html

теперь у меня есть представление магазина, к которому можно получить доступ через подпапку / substore /

Но я хочу, чтобы он запускался из корневой папки файла magento index.php. Но все же у всех ссылок есть подпапка в URL-адресе.

фактическая конфигурация представления магазина Magento настроена правильно. Таким образом, базовый URL-адрес и базовый URL-адрес ссылки - это URL-адрес с вложенной папкой.

все статическое содержимое по-прежнему загружается из корневого домена без исправления вложенной папки.

теперь я пытаюсь создать для него новый блок {} местоположения, но не могу заставить его работать

Я знаю метод syslink, но не хочу этого делать.

на самом деле мне просто нужно узнать, как заставить все URL-адреса /subfolder/index.php перезаписать в корневой файл index.php в Magento, передавая MAGE_RUN_CODE

Я только что попробовал этот блок местоположения под указанным выше. URL-адрес теперь работает, но я получаю 404 страницы в Magento. поэтому нельзя правильно передавать значения "какую страницу показывать"

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;

ОБНОВЛЕНИЕ .1 хорошо, поэтому я обнаружил, что мне нужно использовать раздел ...

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

но это останавливает работу магазина верхнего уровня, поскольку все становится представлением вспомогательного магазина.

поэтому мне нужны правила перезаписи для

rewrite / /index.php;

и

rewrite / /subfolder/index.php;

кто-нибудь знает, как это сделать правильно?

Я видел это много раз, зачем хранить несколько магазинов в отдельных подпапках, разве это не работа поддомена ??

правильный способ - оставить свой магазин как есть, и с помощью раскрывающегося меню выбрать вид магазина и изменить базовый URL ...

тогда в nginx вам, возможно, понадобится использовать 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;
}

на самом деле я никогда раньше этого не пробовал :)