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

Перенаправление администратора Magento на отдельный бэкэнд

Мне нужно, чтобы администратор Magento был отправлен в отдельный серверный модуль из магазина. У меня 2 проблемы:

  1. Не знаю, как правильно сопоставить index.php / admin и / admin с регулярным выражением (index.php / admin работает, так как он соответствует второму местоположению, которое я указал ниже);
  2. Когда я получаю Nginx для соответствия местоположению (в настоящее время только / admin), я не знаю, как правильно перенаправить запрос, поэтому я получаю «Файл не найден» из бэкэнда, поскольку он пытается открыть как файл PHP вместо отправки к основному обработчику index.php.

Это то, что у меня сейчас для админа

location ~ ^/(admin|index.php/admin)/ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass server1:9000;
    #fastcgi_index index.php;
    include fastcgi_params;
}

Это вторая директива, которая соответствует index.php / admin и всему сайту.

location ~ \.php$ {
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass server2:9000;
    fastcgi_index index.php;
    include fastcgi_params;
}

Вместо использования двух отдельных директив местоположения я поместил предложение if внутри одного местоположения:

location ~ \.php$ {
  try_files $uri =404;
  fastcgi_split_path_info ^(.+\.php)(/.+)$;
  fastcgi_pass server2:9000;
  if ($request_uri ~ /admin/) {
    fastcgi_pass server1:9000;  
  }
  fastcgi_index index.php;
  include fastcgi_params;
}