Nginx другой корень только для главной страницы - PullRequest
0 голосов
/ 01 октября 2019

Я пытаюсь настроить nginx, чтобы установить два корня для одного домена. Моя структура папок выглядит следующим образом:

/var/www/
         mainpage/
                  project/index.php
         backend/
                  public/index.php

Мне нужен корневой URL example.com использует проект в папке mainpage, а все остальные URL-адреса использует проект в папке backend (это приложение laravel). Я начал пытаться получить доступ к проекту mainpage по URL example.com/mainpage, но я получаю 403 или "Входной файл не указан". Мой конфиг nginx:

server {
    server_name example.com;
    root "/var/www/backend/public";

    index index.html index.htm index.php;

    charset utf-8;

    location /mainpage/ { 
        alias /var/www/mainpage/project;
        try_files $uri $uri/ /index.php$is_args$args;
    }

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    access_log off;

    sendfile off;

    client_max_body_size 100m;

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;


        fastcgi_intercept_errors off;
        fastcgi_buffer_size 16k;
        fastcgi_buffers 4 16k;
        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300;
    }

    location ~ /\.ht {
        deny all;
    }

Этот конфиг возвращает "403 запрещено". Как мне настроить nginx для правильной работы? И как настроить его для доступа к главной странице для URL-адреса "/" и других URL-адресов для использования внутреннего проекта

1 Ответ

0 голосов
/ 01 октября 2019

Вы можете установить корневой каталог в каждом месте, например:

location / {
    try_files $uri $uri/ /index.php?$query_string;
    root /your/root/directory;
}
...