Serendipity (s9y) arbeitet mit RewriteRules im Directory-Kontext. Hier ein Auschnitt aus dem RuleSet:
RewriteEngine On RewriteBase /blog/ RewriteRule ^(archives/([0-9]+)-[0-9a-z\.\_!;,\+\-\%]+\.html) index.php?/$1 [NC,L,QSA] RewriteRule ^(authors/([0-9]+)-[0-9a-z\.\_!;,\+\-\%]+) index.php?/$1 [NC,L,QSA] RewriteRule ^(categories/([0-9;]+)-[0-9a-z\.\_!;,\+\-\%]+) index.php?/$1 [NC,L,QSA]
Der Trick hier ist, dass s9y intern nur mit den Verzeichnisnamen
(archives, authors, categories) und den IDs, die per Definition
immer am Anfang jeder Artikel-URL stehen, arbeitet.
Der Rest der Dateinamen, die Artikel-Überschriften,
Authorennamen etc., sind nur Zusätze für sprechende URLs, haben
aber intern zur Identifizierung der anzuzeigenden Artikel keine
Relevanz.
http://www.handcode.de/blog/archives/49-PHP-User-Group-Stuttgart-Treffen-Maerz-2007.html http://www.handcode.de/blog/archives/49-PHPUG-200703.html http://www.handcode.de/blog/ARCHIVES/49.html
Die angefragten URLs werden als PathInfo an das zentrale Script index.php übergeben. Query-Strings des orignalen Requests werden mit dem [QSA] Flag an die umgeschriebenen URLs angehängt und durchgereicht.