Skip to content

Instantly share code, notes, and snippets.

@adisetiawan
Last active March 12, 2019 01:01
Show Gist options
  • Save adisetiawan/0e540274814349e42ea7b2a590ef4293 to your computer and use it in GitHub Desktop.
Save adisetiawan/0e540274814349e42ea7b2a590ef4293 to your computer and use it in GitHub Desktop.
Drupal 8 NGINX Virtual Host
server {
    server_name drupal8.test;
    root /Users/username/drupal8/web;

    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    location ~ \..*/.*\.php$ {
        return 403;
    }
    location ~ ^/sites/.*/private/ {
        return 403;
    }

    location ~ ^/sites/[^/]+/files/.*\.php$ {
        deny all;
    }
    
    location ~* ^/.well-known/ {
        allow all;
    }

    location ~ (^|/)\. {
        return 403;
    }

    location / {
        try_files $uri /index.php?$query_string; # For Drupal >= 7
    }

    location @rewrite {
        rewrite ^/(.*)$ /index.php?q=$1;
    }

    # Don't allow direct access to PHP files in the vendor directory.
    location ~ /vendor/.*\.php$ {
        deny all;
        return 404;
    }
    location ~ '\.php$|^/update.php' {
        fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include        fastcgi_params;
    }

    location ~ ^/sites/.*/files/styles/ { # For Drupal >= 7
        try_files $uri @rewrite;
    }

    location ~ ^(/[a-z\-]+)?/system/files/ { # For Drupal >= 7
        try_files $uri /index.php?$query_string;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
        try_files $uri @rewrite;
        expires max;
        log_not_found off;
    }
    
    rewrite ^/core/authorize.php/core/authorize.php(.*)$ /core/authorize.php$1;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment