It's returning 404 because it's looking for the route laravel-api-1 which does not exit.
Mar 17, 2016
14
Level 8
NGINX setup for multiple projects
server
{
listen 443 ssl;
root /var/www/domain.net/laravel-api/public;
index index.php index.html index.htm;
client_max_body_size 80m;
ssl_certificate /root/apis.domain.net.crt;
ssl_certificate_key /root/apis.domain.net.key;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
server_name apis.domain.net;
}
Above server configuration is working fine as it is. But I want to map more than 1 project to apis.domain.net such as
apis.domain.net/laravel-api-1
apis.domain.net/laravel-api-2
When I try to change the server_name to apis.domain.net/laravel-api-1 for this given project (/var/www/domain.net/laravel-api/public) laravel starts to return 404 for every page. How can I achieve this?
Level 65
Tried this?
In your main site's vhost, add these
location ^~ /laravel-api-1 {
alias /var/www/domain.net/laravel-api-1/public;
try_files $uri $uri/ @laravel1;
location ~ \.php {
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(.*)$;
include /etc/nginx/fastcgi_params;
}
}
location @laravel1 {
rewrite /laravel-api-1/(.*)$ /laravel-api-1/index.php?/$1 last;
}
location ^~ /laravel-api-2 {
alias /var/www/domain.net/laravel-api-2/public;
try_files $uri $uri/ @laravel2;
location ~ \.php {
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(.*)$;
include /etc/nginx/fastcgi_params;
}
}
location @laravel2 {
rewrite /laravel-api-2/(.*)$ /laravel-api-2/index.php?/$1 last;
}
4 likes
Please or to participate in this conversation.