Übersicht > Türme von Hanoi > mod_rewrite

Der Apache Web Server bringt eine Konfigurationssprache mit, um URLs umzuschreiben, bevor sie an die eigentliche Webanwendung gelangen. Dadurch ist es möglich, dem Benutzer "schöne" URLs zu bieten. Aber das ist nicht alles: Diese Konfigurationssprache ist so mächtig, dass man darin auch ein bisschen programmieren kann.

Homepage: http://httpd.apache.org/docs/current/mod/mod_rewrite.html


Die Türme von Hanoi in mod_rewrite

# in einer .htaccess zu verwenden, auf die man mit /hanoi/ zugreifen kann.
RewriteEngine on
RewriteBase /hanoi/

RewriteRule ^hanoi,(o+)$ move,a,b,c,$1; [R,L]

RewriteRule ^move,(.),(.),(.),(o);(.*)$ \
            $5?print=Move+the+upper+disk+from+stack+$1+to+stack+$3. [R,NE,L]
RewriteRule ^move,(.),(.),(.),(o+)o;(.*)$ \
            move,$1,$3,$2,$4;move,$1,$2,$3,o;move,$2,$1,$3,$4;$5? [R,L]

RewriteRule ^$ - [L]
RewriteRule . [R=400,L]

Um das Programm aufzurufen, kann man folgenden Befehl in einer Bash absetzen:

wget --max-redirect=500 http://localhost/hanoi/hanoi,ooooo 2>&1 \
| sed -n 's,^-.*?,,p'

Die Anzahl der os hinter dem hanoi legt die Anzahl der Scheiben fest, die bewegt werden sollen. Es war einfacher, Zahlen so zu repräsentieren als durch Dezimalzahlen. Das hätte das Programm nur unnötig verlängert. Der sed-Befehl ist dafür da, die Ausgabe von wget auf das gewünschte Maß zu reduzieren.