From e89a44c4f8b140f296b6121b106be06f31a56bdd Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Tue, 18 Jan 2022 12:18:31 +0100 Subject: [PATCH] Use REQUEST_URI for route matching This will simplify the .htaccess/nginx config. --- .htaccess | 12 ++++++------ index.php | 30 ++++++++++++++++-------------- 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/.htaccess b/.htaccess index 883fe29..20a4551 100644 --- a/.htaccess +++ b/.htaccess @@ -1,4 +1,4 @@ -ErrorDocument 404 /404.html +ErrorDocument 404 /krk/index.php ### Redirect old URLs to new ones ## Subpages @@ -68,8 +68,8 @@ RewriteRule ^pages(/.*)$ /krk$1 [R=301,L,nosubreq] RewriteCond %{REQUEST_URI} !^/pages/ RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_URI} !-f RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_URI} !-d -RewriteRule ^(en|de)/$ /krk/index.php?lang=$1 [END] -RewriteRule ^(en|de)/(.+)\.html$ /krk/index.php?page=$2&lang=$1 [END] -RewriteRule ^(.+)\.html$ /krk/index.php?page=$1 [END] -RewriteRule ^(en|de)/(.+)/$ /krk/index.php?page=$2&lang=$1 [END] -RewriteRule ^(.+)/$ /krk/index.php?page=$1 [END] +RewriteRule ^(en|de)/$ /krk/index.php [END] +RewriteRule ^(en|de)/(.+)\.html$ /krk/index.php [END] +RewriteRule ^(.+)\.html$ /krk/index.php [END] +RewriteRule ^(en|de)/(.+)/$ /krk/index.php [END] +RewriteRule ^(.+/)$ /krk/index.php [END] diff --git a/index.php b/index.php index 9365569..eab387e 100644 --- a/index.php +++ b/index.php @@ -1,6 +1,7 @@ en|de)/)?(?P.*?)(\.html)?$)', $_SERVER['REQUEST_URI'] ?? '', $match); +$lang = empty($match['lang']) ? 'cs' : $match['lang']; +$page = $match['page'] ?? ''; ob_start(); ?> @@ -129,11 +130,12 @@ hs.lang = {

'; -if (file_exists(__DIR__ . "/pages/$page-de.php") || file_exists(__DIR__ . "/pages/$page/$page-de.php")) { - if (file_exists(__DIR__ . "/pages/$page/$page-de.php")) { +if (file_exists(__DIR__ . "/pages/$page-de.php") || file_exists(__DIR__ . "/pages/$pageFileName-de.php")) { + if (file_exists(__DIR__ . "/pages/$pageFileName-de.php")) { $lngc = 'de'; - $icona = "'; + $icona = "'; } else { $lngc = 'de'; $icona = "'; @@ -145,10 +147,10 @@ if (file_exists(__DIR__ . "/pages/$page-de.php") || file_exists(__DIR__ . "/page echo $icona; } } -if (file_exists('pages/' . htmlspecialchars($page) . '-en.php') || file_exists('pages/' . htmlspecialchars($page) . '/' . htmlspecialchars($page) . '-en.php')) { - if (file_exists('pages/' . htmlspecialchars($page) . '/' . htmlspecialchars($page) . '-en.php')) { +if (file_exists('pages/' . htmlspecialchars($page) . '-en.php') || file_exists('pages/' . $pageFileName . '-en.php')) { + if (file_exists('pages/' . $pageFileName . '-en.php')) { $lngc = 'en'; - $icona = "'; + $icona = "'; } else { $lngc = 'en'; $icona = "'; @@ -167,10 +169,10 @@ if (file_exists('pages/' . htmlspecialchars($page) . '-en.php') || file_exists(' echo $icona; } } -if (file_exists('pages/' . htmlspecialchars($page) . '.php') || file_exists('pages/' . htmlspecialchars($page) . '/' . htmlspecialchars($page) . '.php')) { - if (file_exists('pages/' . htmlspecialchars($page) . '/' . htmlspecialchars($page) . '.php')) { +if (file_exists('pages/' . htmlspecialchars($page) . '.php') || file_exists('pages/' . $pageFileName . '.php')) { + if (file_exists('pages/' . $pageFileName . '.php')) { $lngc = ''; - $icona = ''; + $icona = ''; } else { $lngc = ''; $icona = ''; @@ -226,11 +228,11 @@ if ($page !== '') { } else { $jazycek = ''; } - if ($page == 'mcr_2009') { + if ($page == 'mcr_2009/') { include "./pages/mcr_2009/mcr_2009$jazycek.php"; - } elseif ($page == 'mcr_2009/probihani_loucna') { + } elseif ($page == 'mcr_2009/probihani_loucna/') { include "./pages/mcr_2009/probihani_loucna/probihani_loucna$jazycek.php"; - } elseif ($page == 'clanky') { + } elseif ($page == 'clanky/') { include "./pages/clanky/clanky$jazycek.php"; } elseif ($lang === 'cs' && file_exists(__DIR__ . "/pages/$escaped_page.php")) { include "./pages/$escaped_page.php";