Blog

AltoRouter

| | permalink

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>

clumsy - schlechte Netzwerkverbindung auf Knopfdruck

| | permalink

Mit clumsy kann man per GUI beispielsweise die Latenz der Netzwerkverbindung erhöhen.

Clean URL in Ubuntu 18.04 mit Apache2

| | permalink

Die Schritte, die für Ubuntu 16.04 gelten, sind auch für Ubuntu 18.04 gültig:

  1. mod_rewrite aktivieren
sudo a2enmod rewrite

ausführlicher bei ubuntuusers.de beschrieben

  1. sites-enabled Konfiguration anpassen
sudo nano /etc/apache2/sites-enabled/000-default.conf

und in der VirtualHost Direktive folgendes ergänzen

 <Directory "/var/www/html">
  RewriteEngine On
  Options Indexes FollowSymLinks
  AllowOverride All
  Order allow,deny
  Allow from all
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule . index.php [L]
</Directory>
  1. Apache2-Dienst neu starten
sudo systemctl restart apache2

Die .htaccess-Datei kann entfallen, da die Einstellungen bereits in der 000-default.conf vorgenommen werden.