This commit is contained in:
2025-12-08 02:14:55 +01:00
parent e366bb5c07
commit 4d23eb8223
5 changed files with 90 additions and 12 deletions

View File

@@ -35,7 +35,7 @@ $assetBase = $appBaseUrl !== '' ? $appBaseUrl : '';
<body class="bg-slate-50 text-slate-800" data-page="dashboard"> <body class="bg-slate-50 text-slate-800" data-page="dashboard">
<header class="sticky top-0 z-30 bg-white/90 border-b backdrop-blur"> <header class="sticky top-0 z-30 bg-white/90 border-b backdrop-blur">
<div class="max-w-5xl mx-auto px-4 py-4 flex items-center gap-3"> <div class="max-w-5xl mx-auto px-4 py-4 flex items-center gap-3">
<a href="/index.php" class="btn" title="Zurück zur Übersicht">← Übersicht</a> <a href="<?= $appBaseUrl ?>/index.php" class="btn" title="Zurück zur Übersicht">← Übersicht</a>
<h1 class="font-semibold text-lg">Dashboard</h1> <h1 class="font-semibold text-lg">Dashboard</h1>
<div class="ms-auto flex gap-2 items-center"> <div class="ms-auto flex gap-2 items-center">
<div class="relative" id="userMenu"> <div class="relative" id="userMenu">
@@ -43,9 +43,9 @@ $assetBase = $appBaseUrl !== '' ? $appBaseUrl : '';
<span id="userAvatar">U</span> <span id="userAvatar">U</span>
</button> </button>
<div id="userMenuPanel" class="user-menu hidden" role="menu"> <div id="userMenuPanel" class="user-menu hidden" role="menu">
<a href="/admin/profile.php" class="user-menu-item" data-menu="profile">Profil</a> <a href="<?= $appBaseUrl ?>/admin/profile.php" class="user-menu-item" data-menu="profile">Profil</a>
<a href="/admin/dashboard.php" class="user-menu-item" data-role="admin">Dashboard</a> <a href="<?= $appBaseUrl ?>/admin/dashboard.php" class="user-menu-item" data-role="admin">Dashboard</a>
<a href="/admin/settings.php" class="user-menu-item" data-role="admin">Administration</a> <a href="<?= $appBaseUrl ?>/admin/settings.php" class="user-menu-item" data-role="admin">Administration</a>
<button id="btn-logout" type="button" class="user-menu-item text-red-600">Logout</button> <button id="btn-logout" type="button" class="user-menu-item text-red-600">Logout</button>
</div> </div>
</div> </div>

View File

@@ -37,7 +37,7 @@ $assetBase = $appBaseUrl !== '' ? $appBaseUrl : '';
<body class="bg-slate-50 text-slate-800" data-page="account"> <body class="bg-slate-50 text-slate-800" data-page="account">
<header class="sticky top-0 z-30 bg-white/90 border-b backdrop-blur"> <header class="sticky top-0 z-30 bg-white/90 border-b backdrop-blur">
<div class="max-w-5xl mx-auto px-4 py-4 flex items-center gap-3"> <div class="max-w-5xl mx-auto px-4 py-4 flex items-center gap-3">
<a href="/index.php" class="btn" title="Zurück zur Übersicht">← Übersicht</a> <a href="<?= $appBaseUrl ?>/index.php" class="btn" title="Zurück zur Übersicht">← Übersicht</a>
<h1 class="font-semibold text-lg">Mein Konto</h1> <h1 class="font-semibold text-lg">Mein Konto</h1>
<div class="ms-auto flex gap-2 items-center"> <div class="ms-auto flex gap-2 items-center">
<div class="relative" id="userMenu"> <div class="relative" id="userMenu">
@@ -45,9 +45,9 @@ $assetBase = $appBaseUrl !== '' ? $appBaseUrl : '';
<span id="userAvatar">U</span> <span id="userAvatar">U</span>
</button> </button>
<div id="userMenuPanel" class="user-menu hidden" role="menu"> <div id="userMenuPanel" class="user-menu hidden" role="menu">
<a href="/admin/profile.php" class="user-menu-item" data-menu="profile">Profil</a> <a href="<?= $appBaseUrl ?>/admin/profile.php" class="user-menu-item" data-menu="profile">Profil</a>
<a href="/admin/dashboard.php" class="user-menu-item" data-role="admin">Dashboard</a> <a href="<?= $appBaseUrl ?>/admin/dashboard.php" class="user-menu-item" data-role="admin">Dashboard</a>
<a href="/admin/settings.php" class="user-menu-item" data-role="admin">Administration</a> <a href="<?= $appBaseUrl ?>/admin/settings.php" class="user-menu-item" data-role="admin">Administration</a>
<button id="btn-logout" type="button" class="user-menu-item text-red-600">Logout</button> <button id="btn-logout" type="button" class="user-menu-item text-red-600">Logout</button>
</div> </div>
</div> </div>

View File

@@ -35,7 +35,7 @@ $assetBase = $appBaseUrl !== '' ? $appBaseUrl : '';
<body class="bg-slate-50 text-slate-800" data-page="admin"> <body class="bg-slate-50 text-slate-800" data-page="admin">
<header class="sticky top-0 z-30 bg-white/90 border-b backdrop-blur"> <header class="sticky top-0 z-30 bg-white/90 border-b backdrop-blur">
<div class="max-w-5xl mx-auto px-4 py-4 flex items-center gap-3"> <div class="max-w-5xl mx-auto px-4 py-4 flex items-center gap-3">
<a href="/index.php" class="btn" title="Zurück zur Übersicht">← Übersicht</a> <a href="<?= $appBaseUrl ?>/index.php" class="btn" title="Zurück zur Übersicht">← Übersicht</a>
<h1 class="font-semibold text-lg">Administration</h1> <h1 class="font-semibold text-lg">Administration</h1>
<div class="ms-auto flex gap-2 items-center"> <div class="ms-auto flex gap-2 items-center">
<div class="relative" id="userMenu"> <div class="relative" id="userMenu">
@@ -43,9 +43,9 @@ $assetBase = $appBaseUrl !== '' ? $appBaseUrl : '';
<span id="userAvatar">U</span> <span id="userAvatar">U</span>
</button> </button>
<div id="userMenuPanel" class="user-menu hidden" role="menu"> <div id="userMenuPanel" class="user-menu hidden" role="menu">
<a href="/admin/profile.php" class="user-menu-item" data-menu="profile">Profil</a> <a href="<?= $appBaseUrl ?>/admin/profile.php" class="user-menu-item" data-menu="profile">Profil</a>
<a href="/admin/dashboard.php" class="user-menu-item" data-role="admin">Dashboard</a> <a href="<?= $appBaseUrl ?>/admin/dashboard.php" class="user-menu-item" data-role="admin">Dashboard</a>
<a href="/admin/settings.php" class="user-menu-item" data-role="admin">Administration</a> <a href="<?= $appBaseUrl ?>/admin/settings.php" class="user-menu-item" data-role="admin">Administration</a>
<button id="btn-logout" type="button" class="user-menu-item text-red-600">Logout</button> <button id="btn-logout" type="button" class="user-menu-item text-red-600">Logout</button>
</div> </div>
</div> </div>

51
public/.htaccess Normal file
View File

@@ -0,0 +1,51 @@
RewriteEngine On
# ---------------------------------------------------------
# 2) Uploads schützen
# ---------------------------------------------------------
RewriteRule ^uploads/avatar/ - [F]
# ---------------------------------------------------------
# 3) Auth-Routen
# ---------------------------------------------------------
RewriteRule ^auth/login/?$ auth/login.php [L]
RewriteRule ^auth/register/?$ auth/register.php [L]
RewriteRule ^auth/logout/?$ auth/logout.php [L]
# ---------------------------------------------------------
# 4) Tools-Regel
# /tools/foo.php → landingpage/tools/foo.php
# ---------------------------------------------------------
RewriteCond %{REQUEST_URI} ^/tools/ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^tools/(.*)$ landingpage/tools/$1 [L]
# ---------------------------------------------------------
# 5) Generische Landingpage-Regel
# ---------------------------------------------------------
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/(auth|assets|uploads|landingpage|tools|_errors)/ [NC]
RewriteCond %{REQUEST_URI} ^/([^/]+)/?$ [NC]
RewriteCond %{DOCUMENT_ROOT}/landingpage/%1/index.php -f
RewriteRule ^ landingpage/%1/index.php [L]
# ---------------------------------------------------------
# 6) Fallback-Regeln (.php und /index.php)
# ---------------------------------------------------------
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}/index.php -f
RewriteRule ^(.+?)/?$ $1/index.php [L]
# ---------------------------------------------------------
# 7) Globaler 404-Fallback
# ---------------------------------------------------------
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/(assets|uploads|auth|landingpage|tools|_errors)/ [NC]
RewriteRule ^ _errors/404.php [L]

27
public/_errors/404.php Normal file
View File

@@ -0,0 +1,27 @@
<?php
http_response_code(404);
$appBaseUrl = rtrim($GLOBALS['app_base_url'] ?? '', '/');
?>
<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Seite nicht gefunden</title>
<style>
body{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#0f172a;color:#e2e8f0;margin:0;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem}
.card{background:#1e293b;border-radius:1rem;padding:2rem;max-width:460px;text-align:center;box-shadow:0 25px 45px rgba(2,6,23,.45);}
h1{margin-top:0;font-size:2rem}
p{color:#cbd5f5}
a{display:inline-flex;margin-top:1.5rem;padding:.6rem 1.4rem;border-radius:.8rem;background:#38bdf8;color:#0f172a;text-decoration:none;font-weight:600}
a:hover{background:#0ea5e9;color:#fff}
</style>
</head>
<body>
<div class="card">
<h1>404 Seite nicht gefunden</h1>
<p>Die angeforderte Seite existiert nicht oder wurde verschoben.</p>
<a href="<?= $appBaseUrl ?: '/' ?>">Zur Übersicht</a>
</div>
</body>
</html>