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

chern123's avatar

Moving on to next route if some url cannot be found

I am working on an application using Laravel 5.4, VueJS, AXIOS, VueRouter. VueRouter is responsible for all of the navigation in the application, save for the route config below:


<?php

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Auth::routes();


Route::get('/{catchall?}', ['as' => 'start', 'middleware' => 'auth', function() {
    return view('home')->with([...]);
}])->where('catchall', '.*');

This essentially redirects the user to the 'base' blade file, which contains the <router-link></routerlink>.

However, I am now implementing a page in my application that anyone can access (not requiring the auth middleware), and utilizes a different layout entirely (so needs a new blade file).

Preferably, it would be accessed like this:

app.sample.com/{some-string}

Rather than something else like this:

app.sample.com/survey/{some-string}

{some-string} is a randomly generated string that is then thrown into the DB. accessible by one of my models. As I understand it, I could do something like this:

Route::get('/{some-string}', 'SomeController@somemethod')

Placing this above the catchall should work. However, in the case that /{some-string} does not match anything in the DB, I would prefer that it gets handled by the catchall, which will serve the home.blade.php

Is there any clean way to handle this?

0 likes
0 replies

Please or to participate in this conversation.