Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

jlrdw's avatar

Also run

php artisan route:clear
artcore's avatar

Possibly... If {phone }is a string '/search' would match. I always add a condition to make sure the correct type is matched.

Route::get('/search','SearchController@search');
Route::get('/{phone}', 'DealsController@show')->where('phone', ['[\d-]+']);
FutureWeb's avatar

no joy surely if search matches it would pick up the search route as its specific and any other string would match the wildcard

FutureWeb's avatar

local env works production doesn't I think this is the key

FutureWeb's avatar
<?php

namespace App\Providers;

use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
use Illuminate\Support\Facades\Route;

class RouteServiceProvider extends ServiceProvider
{
    /**
     * This namespace is applied to your controller routes.
     *
     * In addition, it is set as the URL generator's root namespace.
     *
     * @var string
     */
    protected $namespace = 'App\Http\Controllers';

    /**
     * The path to the "home" route for your application.
     *
     * @var string
     */
    public const HOME = '/home';

    /**
     * Define your route model bindings, pattern filters, etc.
     *
     * @return void
     */
    public function boot()
    {
        //

        parent::boot();
    }

    /**
     * Define the routes for the application.
     *
     * @return void
     */
    public function map()
    {
        $this->mapApiRoutes();

        $this->mapWebRoutes();

        //
    }

    /**
     * Define the "web" routes for the application.
     *
     * These routes all receive session state, CSRF protection, etc.
     *
     * @return void
     */
    protected function mapWebRoutes()
    {
        Route::middleware('web')
            ->namespace($this->namespace)
            ->group(base_path('routes/web.php'));
    }

    /**
     * Define the "api" routes for the application.
     *
     * These routes are typically stateless.
     *
     * @return void
     */
    protected function mapApiRoutes()
    {
        Route::prefix('api')
            ->middleware('api')
            ->namespace($this->namespace)
            ->group(base_path('routes/api.php'));
    }
}
dkthelearner's avatar

Route Service provides looks correct. If it working on local but not in production may be issue related to the case sensitive of file name etc

DivDax's avatar

Remove use App\Http\Controllers\DealsController; from your web.php.

FutureWeb's avatar
FutureWeb
OP
Best Answer
Level 25

Turns out default NGINX config was to blame !

laracoft's avatar

What? Are you using different servers between dev and production?

Previous

Please or to participate in this conversation.