ich mit dem folgenden Pfad auf einen Link klicken: href="/book/45"
Konvertieren URI-Wert zu erreichen GET-Variable
Mit ModRewrite in Apache2:
# Enable URI Routing
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [QSA,L]
Welche meine index.php umleitet:
function getCurrentUri()
{
$basepath = implode('/', array_slice(explode('/', $_SERVER['SCRIPT_NAME']), 0, 0)) . '/';
$uri = substr($_SERVER['REQUEST_URI'], strlen($basepath));
if (strstr($uri, '?')) $uri = substr($uri, 0, strpos($uri, '?'));
$uri = '/' . trim($uri, '/');
$uri = filter_var($uri, FILTER_SANITIZE_URL);
return $uri;
}
$uri = getCurrentUri();
$routes = array();
$routes = explode('/', $uri);
if ($routes[1] == "book") {
...
require('../views/books.php?id=$routes[2]');
break;
...
}
Ich bekomme einen 500 internen Serverfehler. Ohne die ?id=$routes[2]
lädt die Seite fein.
Mein Ziel ist es, die ID mit $_GET['id'];
in der Datei books.php verweisen zu können.
Ich löste dies durch die Variable übergeben. '' if ($ routes [1] == "Buch") { $ book_id = $ routes [2]; require ('../ views/books.php'); Pause; } '' Dies funktioniert, weil das Skript in ''/views/books.php'' die Variable für '' $ book_id'' sehen kann –