diff --git a/.htaccess b/.htaccess index 20a4551..b0d3938 100644 --- a/.htaccess +++ b/.htaccess @@ -1,75 +1,75 @@ -ErrorDocument 404 /krk/index.php +ErrorDocument 404 /index.php ### Redirect old URLs to new ones ## Subpages RewriteCond &%{QUERY_STRING}& &lang=(en|de)& RewriteCond %1@&%{QUERY_STRING}& (en|de)@.*&page=mcr_2009/mcr_2009& -RewriteRule .* /krk/%1/mcr_2009/ [R=301,QSD,L] +RewriteRule .* /%1/mcr_2009/ [R=301,QSD,L] RewriteCond &%{QUERY_STRING}& &page=mcr_2009/probihani_loucna/probihani_loucna& -RewriteRule .* /krk/mcr_2009/probihani_loucna/ [R=301,QSD,L] +RewriteRule .* /mcr_2009/probihani_loucna/ [R=301,QSD,L] RewriteCond &%{QUERY_STRING}& &lang=(en|de)& RewriteCond %1@&%{QUERY_STRING}& (en|de)@.*&page=mcr_2009(/mcr_2009)?& -RewriteRule .* /krk/%1/mcr_2009/ [R=301,QSD,L] +RewriteRule .* /%1/mcr_2009/ [R=301,QSD,L] RewriteCond &%{QUERY_STRING}& &page=mcr_2009(/mcr_2009)?& -RewriteRule .* /krk/mcr_2009/ [R=301,QSD,L] +RewriteRule .* /mcr_2009/ [R=301,QSD,L] RewriteCond &%{QUERY_STRING}& &lang=(en|de)& RewriteCond %1@&%{QUERY_STRING}& (en|de)@.*&page=clanky(/clanky)?& -RewriteRule .* /krk/%1/clanky/ [R=301,QSD,L] +RewriteRule .* /%1/clanky/ [R=301,QSD,L] RewriteCond &%{QUERY_STRING}& &page=clanky(/clanky)?& -RewriteRule .* /krk/clanky/ [R=301,QSD,L] +RewriteRule .* /clanky/ [R=301,QSD,L] RewriteCond &%{QUERY_STRING}& &lang=(en|de)& RewriteCond %1@&%{QUERY_STRING}& (en|de)@.*&page=(krk_default)?& -RewriteRule .* /krk/%1/ [R=301,QSD,L] +RewriteRule .* /%1/ [R=301,QSD,L] RewriteCond &%{QUERY_STRING}& &page=(krk_default)?& -RewriteRule .* /krk/ [R=301,QSD,L] +RewriteRule .* / [R=301,QSD,L] ## Generic fallback RewriteCond &%{QUERY_STRING}& &lang=(en|de)& RewriteCond %1@&%{QUERY_STRING}& (en|de)@.*&page=([^&]+)/& -RewriteRule .* /krk/%1/%2/ [R=301,QSD,L,nosubreq] +RewriteRule .* /%1/%2/ [R=301,QSD,L,nosubreq] RewriteCond &%{QUERY_STRING}& &lang=(en|de)& RewriteCond %1@&%{QUERY_STRING}& (en|de)@.*&page=([^&]+)& -RewriteRule .* /krk/%1/%2.html [R=301,QSD,L,nosubreq] +RewriteRule .* /%1/%2.html [R=301,QSD,L,nosubreq] RewriteCond &%{QUERY_STRING}& &page=([^&]+)/& -RewriteRule .* /krk/%1/ [R=301,QSD,L,nosubreq] +RewriteRule .* /%1/ [R=301,QSD,L,nosubreq] RewriteCond &%{QUERY_STRING}& &page=([^&]+)& -RewriteRule .* /krk/%1.html [R=301,QSD,L,nosubreq] +RewriteRule .* /%1.html [R=301,QSD,L,nosubreq] # No page selected RewriteCond &%{QUERY_STRING}& &lang=(en|de)& -RewriteRule .* /krk/%1/ [R=301,QSD,L,nosubreq] +RewriteRule .* /%1/ [R=301,QSD,L,nosubreq] # No page selected RewriteCond &%{QUERY_STRING}& &lang=cs& -RewriteRule .* /krk/ [R=301,QSD,L,nosubreq] +RewriteRule .* / [R=301,QSD,L,nosubreq] ### Load files in pages/ -RewriteCond %{REQUEST_URI} ^/krk/(.+)$ -RewriteCond %{DOCUMENT_ROOT}/krk/pages/%1 -f -RewriteRule ^(.*)$ /krk/pages/$1 [END] +RewriteCond %{REQUEST_URI} ^/(.+)$ +RewriteCond %{DOCUMENT_ROOT}/pages/%1 -f +RewriteRule ^(.*)$ /pages/$1 [END] ### Canonization -RewriteRule ^cs(?:/(.*))?$ /krk/$1 [R=301,L] -RewriteRule ^(en|de)$ /krk/$1/ [R=301,L] -RewriteRule ^(mainkrk|index|print).php$ /krk/ [R=301,L] -RewriteRule ^pages(/.*)$ /krk$1 [R=301,L,nosubreq] +RewriteRule ^cs(?:/(.*))?$ /$1 [R=301,L] +RewriteRule ^(en|de)$ /$1/ [R=301,L] +RewriteRule ^(mainkrk|index|print).php$ / [R=301,L] +RewriteRule ^pages(/.*)$ $1 [R=301,L,nosubreq] ### Fall back to loading pages through our “CMS” RewriteCond %{REQUEST_URI} !^/pages/ RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_URI} !-f RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_URI} !-d -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] +RewriteRule ^(en|de)/$ /index.php [END] +RewriteRule ^(en|de)/(.+)\.html$ /index.php [END] +RewriteRule ^(.+)\.html$ /index.php [END] +RewriteRule ^(en|de)/(.+)/$ /index.php [END] +RewriteRule ^(.+/)$ /index.php [END] diff --git a/index.php b/index.php index eab387e..518e7a4 100644 --- a/index.php +++ b/index.php @@ -1,5 +1,5 @@ en|de)/)?(?P.*?)(\.html)?$)', $_SERVER['REQUEST_URI'] ?? '', $match); +preg_match('(^/(?:(?Pen|de)/)?(?P.*?)(\.html)?$)', $_SERVER['REQUEST_URI'] ?? '', $match); $lang = empty($match['lang']) ? 'cs' : $match['lang']; $page = $match['page'] ?? ''; @@ -8,15 +8,15 @@ ob_start(); - - - + + + - - + +