Well, you have to be really really creative with your programming to get this to work as is... VERY VERY CREATIVE. The biggest challenge will be in the controller.
Now here comes the problem. The /cat1/sub-ca2/sub-cat3/ part, will it always be like this? Will every route have a cat1, sub-cat2, sub-cat3?
If YES then it's pretty easy.
First thing is to understand routing, optional route parameters etc.
I'll do this.
Routes.php
Route::get('/{category}/{sub-cat2}/{sub-cat3}/{page}', 'RouteController@index');
RouteController.php
function index($category, $subCat2, $subCat3, $page){
$productsData = collect(); //You'll do your logic here with the categories to get the products data.
//Make sure to sanitize the $page variable since it is gotten as input from the client. SECURITY CONCERNS
return view($page)->with($productsData);
}
If NO, you will need extra programming magic. You'll also need to explain more & better what you want to achieve to see if I can be of help.