Skip to content

Instantly share code, notes, and snippets.

Last active September 21, 2023 03:49
  • Star 3 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
Star You must be signed in to star a gist
What would you like to do?
Laravel Server Configuration for Nginx & Apache (Subdirectory)

Laravel Server Configuration for Nginx & Apache (Subdirectory)

It's easy to configurate a Laravel server site with directory protection:

Laravel Web Server Configuration

Sub Directory Site Application

Laravel smartly detects the current base url so that you don't need to set the base url for subdirectoy:

// All Url path would return full URL with current path

Nginx Configuration

Basic Subdirectory

With same path included /public, for example: /sublara/

# Subdirectory Laravel Application Configuration
# App directories protection
location /sublara/ {                                                 
    return 403;                                                                           
# Laravel public
location /sublara/public/ {                                          
    try_files $uri $uri/ /sublara/public/index.php?$query_string;

After above setting:

  • Access Laravel web: //hostname/sublara/public/
  • Protect Laravel app directories: //hostname/sublara/ (/sublara/composer.json)

Protected Subdirectory

Using alias to implement different subdiretory pointed to specified project path:

location /site2/ {
    alias /srv/www/project2/;
    # Pretty URI trick
    try_files $uri $uri/ /site2//site2/index.php?$query_string;
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        # Apply the subdirectory base path to PHP script
        fastcgi_param SCRIPT_FILENAME $request_filename;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;

try_files with trick


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment