Posted on 15th March 2019 in #laravel-forge #nginx

Previously my old site hosted quite a number of subdomains for old projects and scripts, when moving to Laravel Forge and setting up SSL everything now gets redirected. I wanted to serve 404s for those old subdomains as it's more of a correct response than a 301 to the homepage.

I'm not familiar with NGINX but the configs are nice and clean, Forge uses a before include which has a ssl_redirect.conf file which deals with redirecting non https traffic to it's https counterpart.

# FORGE CONFIG (DO NOT REMOVE!)
include forge-conf/www.example.co.uk/before/*;

server {
...

I created a new file in the /etc/nginx/forge-conf/www.example.co.uk/before/ directory that listens for specific subdomains and simply returns a default 404 response. I named that file a.conf to ensure that it loads before any existing conf files.

server {
    listen 80;
    listen [::]:80;
    server_name a.example.co.uk b.example.co.uk;
    return 404;
}

Finally restart NGINX (in the Forge admin) to ensure that the new config file comes into play and voila!