Правила для Apache надо добавить в 4 файла .htaccess
:
./.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;