Wie erstellt man Suchmaschinenfreundliche URLs?

hi

bisher habe ich mich mit parametrisierten URLs begnügt, wenn ich was programmiert habe. z.b. http://localhost/testpage/list.php?mode=user

aber wie das ganze freundlicher machen? z.b. http://localhost/testpage/userlist/

wie siehts mit den technischen hintergründen aus und wie schafft man das? und (wie) gehts bei eingeschränkteren webservern (also was gemietetes, wie funpic anstatt die lokale XAMPP-installation)?

aber wie das ganze freundlicher machen? z.b.
http://localhost/testpage/userlist/

Da gibt es zwei übliche Verfahren.
Eines ist url-rewriting, im Apache ist es das modul mod_rewrite.
Damit mappt man eine URL wie
/testpage/userlist
nach
/testpage/list.php?mode=user

Das Mapping kann auch Regexes beinhalten, also etwa
/testpage/(\w+)list
=>
/testpage/list.php?mode=$1

URL-Rewriting hat den Vorteil, dass man das Script nicht ändern muss.

Alternativ gibt es die Möglichkeit, die Umgebungsvariable PATH_INFO auszulesen, welche laut CGI-Spezifikation gesetzt sein muss.

Wenn beispielsweise die Location /testpage auf ein ScriptAlias zeigt (oder per
Handler z.b. auf einen mod_perl-Handler), dann ist alles, was nach /testpage kommt, in der PATH_INFO-Variable enthalten. Bei
/testpage/userlist
steht da also „/userlist“ drin.

Geht auch ohne ScriptAlias, also bei /testpage/list.php/userlist stünde dann auch „/userlist“ drin.

wie siehts mit den technischen hintergründen aus und wie
schafft man das? und (wie) gehts bei eingeschränkteren
webservern (also was gemietetes, wie funpic anstatt die lokale
XAMPP-installation)?

Solltest nach .htaccess suchen, denn in den .htaccess-Dateien schreibt man dann die Rewrite-Regeln rein.

http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html

Wenn ein Hoster sowas nicht anbietet, bleibt dir immer noch die Möglichkeit mit PATH_INFO, das sollte überall funktionieren.