nicht nutzbarer stand, header menü ist nicht intertia initialisiert. aber schick. codex änderungen noch enthalten.
This commit is contained in:
@@ -5,6 +5,7 @@ use Illuminate\Support\Facades\Route;
|
||||
use Inertia\Inertia;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use App\Http\Controllers\CheckoutController;
|
||||
use App\Http\Controllers\LocaleController;
|
||||
|
||||
Route::get('/lang/{locale}/{namespace}', function ($locale, $namespace) {
|
||||
Log::info('Lang route hit', ['locale' => $locale, 'namespace' => $namespace]);
|
||||
@@ -18,7 +19,20 @@ Route::get('/lang/{locale}/{namespace}', function ($locale, $namespace) {
|
||||
return response()->json($content);
|
||||
})->where(['locale' => 'de|en', 'namespace' => 'marketing|auth|common']);
|
||||
|
||||
Route::prefix('{locale?}')->where(['locale' => 'de|en'])->middleware('locale')->group(function () {
|
||||
// Redirect old prefixed URLs to prefix-free (301 permanent)
|
||||
Route::any('{locale}/{path?}', function ($locale, $path = '') {
|
||||
$cleanPath = $path ? "/$path" : '/';
|
||||
return redirect($cleanPath, 301);
|
||||
})->where([
|
||||
'locale' => 'de|en',
|
||||
'path' => '.*'
|
||||
]);
|
||||
|
||||
// Set locale route
|
||||
Route::post('/set-locale', [LocaleController::class, 'set'])->name('locale.set');
|
||||
|
||||
// Main routes (prefix-free)
|
||||
Route::middleware('locale')->group(function () {
|
||||
Route::get('/', [\App\Http\Controllers\MarketingController::class, 'index'])->name('marketing');
|
||||
Route::get('/packages', [\App\Http\Controllers\MarketingController::class, 'packagesIndex'])->name('packages');
|
||||
Route::get('/packages/{id}', function ($id) {
|
||||
@@ -29,66 +43,28 @@ Route::prefix('{locale?}')->where(['locale' => 'de|en'])->middleware('locale')->
|
||||
Route::get('/register', [\App\Http\Controllers\Auth\MarketingRegisterController::class, 'create'])->name('register');
|
||||
Route::post('/register', [\App\Http\Controllers\Auth\MarketingRegisterController::class, 'store'])->middleware('throttle:6,1')->name('register.store');
|
||||
Route::post('/logout', [\App\Http\Controllers\Auth\AuthenticatedSessionController::class, 'destroy'])->name('logout');
|
||||
});
|
||||
|
||||
// Fallback for /login (redirect to default locale)
|
||||
Route::get('/login', function () {
|
||||
return redirect('/de/login');
|
||||
})->name('login.fallback');
|
||||
|
||||
// Fallback for POST /login (redirect to default locale, preserve method)
|
||||
Route::post('/login', function (Request $request) {
|
||||
return redirect('/de/login', 307)->withInput();
|
||||
})->name('login.fallback.post');
|
||||
|
||||
// Fallback for /register (redirect to default locale)
|
||||
Route::post('/register', function (Request $request) {
|
||||
return redirect('/de/register' . $request->getQueryString());
|
||||
})->name('register.fallback');
|
||||
|
||||
// Fallback for /logout (redirect to default locale)
|
||||
Route::post('/logout', function () {
|
||||
return redirect('/de/logout');
|
||||
})->name('logout.fallback');
|
||||
|
||||
// Fallback for /packages (redirect to default locale)
|
||||
Route::get('/packages', function () {
|
||||
return redirect('/de/packages');
|
||||
})->name('packages.fallback');
|
||||
|
||||
// Fallback for /blog (redirect to default locale)
|
||||
Route::get('/blog', function () {
|
||||
return redirect('/de/blog');
|
||||
})->name('blog.fallback');
|
||||
|
||||
// Blog Routes (inside locale group for i18n support)
|
||||
Route::prefix('{locale?}')->where(['locale' => 'de|en'])->middleware('locale')->group(function () {
|
||||
// Blog routes
|
||||
Route::get('/blog', [\App\Http\Controllers\MarketingController::class, 'blogIndex'])->name('blog');
|
||||
Route::get('/blog/{post}', [\App\Http\Controllers\MarketingController::class, 'blogShow'])->name('blog.show');
|
||||
});
|
||||
|
||||
// Fallbacks for Legal Pages (redirect to default locale)
|
||||
Route::get('/impressum', function () {
|
||||
return redirect('/de/impressum');
|
||||
})->name('impressum.fallback');
|
||||
Route::get('/datenschutz', function () {
|
||||
return redirect('/de/datenschutz');
|
||||
})->name('datenschutz.fallback');
|
||||
Route::get('/kontakt', function () {
|
||||
return redirect('/de/kontakt');
|
||||
})->name('kontakt.fallback');
|
||||
|
||||
// Legal Pages in locale group
|
||||
Route::prefix('{locale?}')->where(['locale' => 'de|en'])->middleware('locale')->group(function () {
|
||||
Route::get('/impressum', function () {
|
||||
return view('legal.impressum');
|
||||
})->name('impressum');
|
||||
Route::get('/datenschutz', function () {
|
||||
return view('legal.datenschutz');
|
||||
})->name('datenschutz');
|
||||
Route::get('/kontakt', [\App\Http\Controllers\MarketingController::class, 'contactView'])->name('kontakt');
|
||||
Route::post('/kontakt', [\App\Http\Controllers\MarketingController::class, 'contact'])->name('kontakt.submit');
|
||||
});
|
||||
// Legal pages
|
||||
Route::get('/impressum', function () {
|
||||
return view('legal.impressum');
|
||||
})->name('impressum');
|
||||
Route::get('/datenschutz', function () {
|
||||
return view('legal.datenschutz');
|
||||
})->name('datenschutz');
|
||||
Route::get('/kontakt', [\App\Http\Controllers\MarketingController::class, 'contactView'])->name('kontakt');
|
||||
Route::post('/kontakt', [\App\Http\Controllers\MarketingController::class, 'contact'])->name('kontakt.submit');
|
||||
|
||||
// Anlässe routes
|
||||
Route::get('/anlaesse/{type}', [\App\Http\Controllers\MarketingController::class, 'occasionsType'])
|
||||
->where([
|
||||
'type' => 'hochzeit|geburtstag|firmenevent'
|
||||
])
|
||||
->name('anlaesse.type');
|
||||
});
|
||||
|
||||
Route::middleware(['auth', 'verified'])->group(function () {
|
||||
Route::get('dashboard', function () {
|
||||
@@ -163,13 +139,6 @@ Route::middleware('auth')->group(function () {
|
||||
|
||||
Route::get('/marketing/success/{package_id?}', [\App\Http\Controllers\MarketingController::class, 'success'])->name('marketing.success');
|
||||
|
||||
Route::prefix('{locale?}')->where(['locale' => 'de|en'])->middleware('locale')->group(function () {
|
||||
Route::get('/anlaesse/{type}', [\App\Http\Controllers\MarketingController::class, 'occasionsType'])
|
||||
->where([
|
||||
'type' => 'hochzeit|geburtstag|firmenevent'
|
||||
])
|
||||
->name('anlaesse.type');
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user