Skip to content

Set Custom Headers to HTTP Responses in Laravel

laravel set custom headers to http responses

Let’s look at how we can add custom headers to HTTP responses in a Laravel application.


Create a Middleware

One good solution, in this case, is to create a Middleware.

Run the following command:

php artisan make:middleware NeutronHeaders

Don’t forget to choose a proper name for the Middleware.

The namespace will be \App\Http\Middleware\NeutronHeaders.php

Let’s create a custom header but let’s also change an existing one like Cache-Control, to show you how it works.

Now there are different ways we may use this Middleware.

We can apply it globally on every HTTP request or we can use it only on specific routes.

We’ll go over both but let’s first apply it globally.

Let’s open the \App\Http\Kernel.php file.

Add Custom Headers to All HTTP Requests

Inside the protected $middleware array, register the Middleware.

Call any API inside the project and notice that the custom headers are now globally set.

Add Custom Headers to Specific Routes

Remove the Middleware from the $middleware array and register it inside the $routeMiddleware array in \App\Http\Kernel.php.

Then go to the file where you have defined your routes. Typically is the routes/api.php file.

Then apply the Middleware to the routes you desire.

You should now be all set!

Let me know what you think about this article in the comments section below.

If you find this article helpful, please share it with others and subscribe to the blog to support me, and receive a bi-monthly-ish e-mail notification on my latest articles.