AltoRouter
AltoRouter ist eine kleine, aber mächtige PHP-Klasse, mit der man auch große Projekte umsetzen kann.
Um AltoRouter nutzen zu können, muss im Webserver das URL-Rewriting aktiviert sein. Zusätzlich dazu, ist eine .htaccess
-Datei notwendig, die die Anfragen an die index.php
weiterleitet:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]
</IfModule>
Die index.php
-Datei nimmt die Anfragen entgegen und man kann eigene Routen erstellen, über die die Anfragen abgearbeitet werden:
<?php
header("Content-Type: text/html");
include dirname(__FILE__) . '/AltoRouter.php';
$router = new AltoRouter();
// $router->setBasePath('/');
/* Setup the URL routing. This is production ready. */
$router->map('GET', '/', 'home.php', 'home');
$router->map('GET', '/guest/', 'guest.php', 'guest');
$router->map('GET', '/user/[*:id]/', 'user/id.php', 'user-id');
// // API Routes
// $router->map('GET','/api/[*:key]/[*:name]/', 'json.php', 'api');
/* Match the current request */
$match = $router->match();
if($match) {
require $match['target'];
} else {
header("HTTP/1.0 404 Not Found");
require '404.html';
}
?>
Wenn keine passende Route gefunden wird, wird HTTP Error 404 zurückgegeben und die 404.html
-Datei angezeigt.
Eine (ungetestete) vHost-Konfiguration, bei der keine .htaccess
notwendig ist:
<VirtualHost *:80>
ServerName altorouter.local
DocumentRoot "/var/www/html/altorouter/"
ServerAdmin apache@altorouter.local
ErrorLog ${APACHE_LOG_DIR}/altorouter-error.log
CustomLog ${APACHE_LOG_DIR}/altorouter-access.log combined
LimitRequestFieldSize 32768
<Directory /var/www/html/altorouter>
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]
</IfModule>
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>