Add pretty URLs
This commit is contained in:
parent
af01528f57
commit
d970e41f27
3 changed files with 58 additions and 8 deletions
10
.htaccess
Normal file
10
.htaccess
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
RewriteEngine On
|
||||||
|
|
||||||
|
# Page
|
||||||
|
RewriteRule ^([a-z\-]+)$ /?page=$1 [QSA,L]
|
||||||
|
|
||||||
|
# Wishlist
|
||||||
|
RewriteRule ^wishlist/([a-z0-9]+) /?wishlist=$1 [QSA,L]
|
||||||
|
|
||||||
|
# Wishlists
|
||||||
|
RewriteRule ^wishlist/(\d+) /?wishlist=$1 [QSA,L]
|
|
@ -125,6 +125,46 @@ class Page
|
||||||
header('Location: /?page=power&required=' . $this->power);
|
header('Location: /?page=power&required=' . $this->power);
|
||||||
die();
|
die();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Redirect
|
||||||
|
*/
|
||||||
|
$htaccess = explode(PHP_EOL, file_get_contents('.htaccess'));
|
||||||
|
$redirect_to = '';
|
||||||
|
|
||||||
|
foreach ($htaccess as $index => $line) {
|
||||||
|
$parts = explode(chr(32), $line);
|
||||||
|
|
||||||
|
if (count($parts) >= 2) {
|
||||||
|
switch ($parts[0]) {
|
||||||
|
case 'RewriteRule':
|
||||||
|
$url = $parts[1];
|
||||||
|
$url = ltrim($url, '^');
|
||||||
|
$url = rtrim($url, '$');
|
||||||
|
$flags = explode(',', substr($parts[3], 1, -1)) ?? array();
|
||||||
|
|
||||||
|
preg_match('/\((.+?)\)/', $url, $regex);
|
||||||
|
|
||||||
|
if (isset($_GET)) {
|
||||||
|
foreach ($_GET as $key => $value) {
|
||||||
|
if (preg_match('/^' . $regex[1] . '$/', $value)) {
|
||||||
|
$redirect_to = '/' . str_replace($regex[0], $value, $url);
|
||||||
|
|
||||||
|
if (in_array('L', $flags)) {
|
||||||
|
break 3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($redirect_to && $redirect_to !== $_SERVER['REQUEST_URI']) {
|
||||||
|
header('Location: ' . $redirect_to);
|
||||||
|
die();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function header(): void
|
public function header(): void
|
||||||
|
@ -157,12 +197,12 @@ class Page
|
||||||
/** Fomantic UI */
|
/** Fomantic UI */
|
||||||
$stylesheetFomantic = 'semantic/dist/semantic.min.css';
|
$stylesheetFomantic = 'semantic/dist/semantic.min.css';
|
||||||
$stylesheetFomanticModified = filemtime($stylesheetFomantic);
|
$stylesheetFomanticModified = filemtime($stylesheetFomantic);
|
||||||
echo '<link rel="stylesheet" href="' . $stylesheetFomantic . '?m=' . $stylesheetFomanticModified . '" />';
|
echo '<link rel="stylesheet" type="text/css" href="/' . $stylesheetFomantic . '?m=' . $stylesheetFomanticModified . '" />';
|
||||||
|
|
||||||
/** Default */
|
/** Default */
|
||||||
$stylesheetDefault = 'src/assets/css/default.css';
|
$stylesheetDefault = 'src/assets/css/default.css';
|
||||||
$stylesheetDefaultModified = filemtime($stylesheetDefault);
|
$stylesheetDefaultModified = filemtime($stylesheetDefault);
|
||||||
echo '<link rel="stylesheet" href="' . $stylesheetDefault . '?m=' . $stylesheetDefaultModified . '" />';
|
echo '<link rel="stylesheet" type="text/css" href="/' . $stylesheetDefault . '?m=' . $stylesheetDefaultModified . '" />';
|
||||||
|
|
||||||
/** Page */
|
/** Page */
|
||||||
$stylesheetPage = 'src/assets/css/' . $this->name . '.css';
|
$stylesheetPage = 'src/assets/css/' . $this->name . '.css';
|
||||||
|
@ -170,7 +210,7 @@ class Page
|
||||||
if (file_exists($stylesheetPage)) {
|
if (file_exists($stylesheetPage)) {
|
||||||
$stylesheetPageModified = filemtime($stylesheetPage);
|
$stylesheetPageModified = filemtime($stylesheetPage);
|
||||||
|
|
||||||
echo '<link rel="stylesheet" href="' . $stylesheetPage . '?m=' . $stylesheetPageModified . '" />';
|
echo '<link rel="stylesheet" type="text/css" href="/' . $stylesheetPage . '?m=' . $stylesheetPageModified . '" />';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -180,17 +220,17 @@ class Page
|
||||||
/** jQuery */
|
/** jQuery */
|
||||||
$scriptjQuery = 'node_modules/jquery/dist/jquery.min.js';
|
$scriptjQuery = 'node_modules/jquery/dist/jquery.min.js';
|
||||||
$scriptjQueryModified = filemtime($scriptjQuery);
|
$scriptjQueryModified = filemtime($scriptjQuery);
|
||||||
echo '<script defer src="' . $scriptjQuery . '?m=' . $scriptjQueryModified . '"></script>';
|
echo '<script defer src="/' . $scriptjQuery . '?m=' . $scriptjQueryModified . '"></script>';
|
||||||
|
|
||||||
/** Fomantic */
|
/** Fomantic */
|
||||||
$scriptFomantic = 'semantic/dist/semantic.min.js';
|
$scriptFomantic = 'semantic/dist/semantic.min.js';
|
||||||
$scriptFomanticModified = filemtime($scriptFomantic);
|
$scriptFomanticModified = filemtime($scriptFomantic);
|
||||||
echo '<script defer src="' . $scriptFomantic . '?m=' . $scriptFomanticModified . '"></script>';
|
echo '<script defer src="/' . $scriptFomantic . '?m=' . $scriptFomanticModified . '"></script>';
|
||||||
|
|
||||||
/** Default */
|
/** Default */
|
||||||
$scriptDefault = 'src/assets/js/default.js';
|
$scriptDefault = 'src/assets/js/default.js';
|
||||||
$scriptDefaultModified = filemtime($scriptDefault);
|
$scriptDefaultModified = filemtime($scriptDefault);
|
||||||
echo '<script defer src="' . $scriptDefault . '?m=' . $scriptDefaultModified . '"></script>';
|
echo '<script defer src="/' . $scriptDefault . '?m=' . $scriptDefaultModified . '"></script>';
|
||||||
|
|
||||||
/** Page */
|
/** Page */
|
||||||
$scriptPage = 'src/assets/js/' . $this->name . '.js';
|
$scriptPage = 'src/assets/js/' . $this->name . '.js';
|
||||||
|
@ -198,7 +238,7 @@ class Page
|
||||||
if (file_exists($scriptPage)) {
|
if (file_exists($scriptPage)) {
|
||||||
$scriptPageModified = filemtime($scriptPage);
|
$scriptPageModified = filemtime($scriptPage);
|
||||||
|
|
||||||
echo '<script defer src="' . $scriptPage . '?m=' . $scriptPageModified . '"></script>';
|
echo '<script defer src="/' . $scriptPage . '?m=' . $scriptPageModified . '"></script>';
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
use wishthis\{Page, User, Wishlist};
|
use wishthis\{Page, User, Wishlist};
|
||||||
|
|
||||||
$wishlist = new Wishlist($_GET['wishlist']);
|
$wishlist = new Wishlist(intval($_GET['wishlist']));
|
||||||
|
|
||||||
if (!$wishlist->exists) {
|
if (!$wishlist->exists) {
|
||||||
http_response_code(404);
|
http_response_code(404);
|
||||||
|
|
Loading…
Reference in a new issue