Configuração da subpasta - 2 aplicativos em um domínio

3

Existem dois aplicativos de página única em um servidor ( App-One e App-Two ).

Para acessar App-One , há o domínio www.app-one.com . App-Two é alcançável dentro do mesmo domínio em uma subpasta: www.app-one.com/app-two .

Ambos os aplicativos estão na pasta /var/www/ no servidor:

  • Pasta /var/www/www.app-one.com para App-One
  • Pasta /var/www/app-two para App-Two

O problema

Se eu inserir www.app-one.com/app-two no navegador, ele redireciona para www.app-one.com .

Se eu inserir www.app-one.com/app-two/index.html , tudo funciona.

A configuração do nginx

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    server_name www.app-one.com app-one.com;

    # www rewrite
    if ($host !~* ^www\.) {
        rewrite ^(.*)$ http://www.app-one.com permanent;
    }

    # Logs
    access_log /var/log/nginx/www.app-one.com_access.log;
    error_log /var/log/nginx/www.app-one.com_error.log;

    # App-One
    index index.html;
    root /var/www/www.app-one.com;

    # App-One
    location / {
        try_files $uri $uri/ /index.html =404;
    }

    # App-Two
    location /app-two {
        alias /var/www/app-two;
        try_files $uri $uri/ /index.html =404;
    }
}

O que eu tentei

Vários filtros de localização ( = , ~ , ...) e usando root em vez de alias no local do app-dois. Mas se eu fizer isso, os links relativos aos recursos de App-Two estão apontando para a URL incorreta.

O que há de errado nessa configuração?

    
por WebCore IT 07.12.2016 / 13:25

1 resposta

0

Suas declarações try_files estão incorretas. A instrução try_files deve terminar com um URI padrão ou com um código de erro, não ambos. Consulte este documento para saber mais.

No caso de app-one , a declaração deve se parecer com:

try_files $uri $uri/ /index.html;

No caso de app-dois , a ação padrão precisa ser o URI completo, e não apenas o nome do arquivo:

try_files $uri $uri/ /app-two/index.html;
    
por 07.12.2016 / 15:44

Tags