У меня есть приложение Laravel, которое я хотел бы использовать только для его /api
маршрутов.При обращении к /
, /login
, /profile
и т. Д. Я бы хотел, чтобы nginx обслуживал индексный файл, расположенный в базовом корне, /var/www/html/index.html
.
Вот мой текущий default.conf
.Маршруты /api
работают, но они также подают /
из бэкэнда, чего я не хочу.Если я просто поменяю location /
на location /api
, маршруты /api
станут недоступными, и при попытке получить к ним доступ возвращает индексный файл, расположенный в базовом корне, /var/www/html/index.html
.Это противоположно тому, чего я пытаюсь достичь.Ха-ха.
Как я могу сохранить маршруты /api
доступными, в то же время не давая серверу обслуживать /
?
server {
listen 80;
root /var/www/html;
server_name _;
index index.php index.html index.htm;
# API routes should be handled by the backend (Laravel).
##### I want to change the following line from "/" to "/api".
location / {
root /var/www/backend/public;
try_files $uri $uri/ /index.php?$query_string;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_index index.php;
include fastcgi_params;
}
}
}