Мои настройки Nginx + Apache для запуска Magento 2.0 на локальном компьютере в подпапке

Правила для Apache надо добавить в 4 файла .htaccess:

  1. ./.htaccess
  • ./pub/.htaccess
  • ./pub/media/.htaccess
  • ./pub/static/.htaccess

В этих файлах сразу после директивы RewriteEngine on надо написать:

RewriteCond %{HTTP_HOST} ^localhost\.com$
RewriteCond %{REQUEST_URI} !^/store/
RewriteRule ^(.*)$ /store/$1

Здесь store - это требуемая подпапка, а localhost.com - это домен.

Настройка VirtualHost:

Listen 1900
<VirtualHost 127.0.0.1:1900>
	ServerName localhost.com
	DocumentRoot "C:/work/mage2.pro"
	SetEnv MAGE_MODE "developer"
	RemoteIPHeader X-Forwarded-For
</VirtualHost>

Magento 2.0 в этом примере установлена в подпапку store корневой папки C:/work/mage2.pro/store

Настройки Nginx:

server {
	listen 900;
	server_name localhost.com;
	error_page 419 = @magento;
	error_page 420 = @magento_static;
	error_page 421 = @discourse;
	location /store {
		location /store/pub/media/ {return 420;}
		location /store/pub/static/ {return 420;}
		return 419;
	}
	location / {return 421;}
	location @discourse {
		# http://serverfault.com/q/269420
		# https://abitwiser.wordpress.com/2011/02/24/virtualbox-hates-sendfile/
		sendfile off;
		expires off;
		include params_for_proxy;
		proxy_redirect http://localhost.com:4000/ http://localhost.com:900/;
		proxy_pass http://localhost.com:4000;
	}
	location @magento_static {
		root C:/work/mage2.pro;
		access_log off;
		expires max;
		try_files $uri @magento;
	}
	location @magento {
		include params_for_proxy;
		proxy_redirect http://localhost.com:1900/ http://localhost.com:900/;
		proxy_pass http://localhost.com:1900;
	}
}

Файл params_for_proxy:

proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# передаём в Magento реальный порт
proxy_set_header Host $host:$server_port;

Сообщение перенесено в новую тему: Как установить Magento 2 на HHVM