ChrisB: umleitung mit mod_rewrite in .htaccess-Date

Beitrag lesen

Hi,

es ohne "/" funktionieren zu lassen ist keine gute Idee, da dein Bezugsverzeichnis dann ein Anderes ist und deine Links nicht mehr funktionieren.
Wieso ist mein Bezugsverzeichnis dann ein anderes? Versteh ich leider nicht ganz. www.example.de/xyz und www.example.de/xyz/ ist doch das selbe Verzeichnis oder sehe ich das falsch?

Den Unterschied bemerkst du dann, wenn du in den HTM-Dokumenten externe Ressourcen (Bilder, Scripte, CSS) relativ eingebunden hast.

Verweist du auf blahblubb.jpg, dann obliegt es dem Client, daraus und aus der Adresse des aktuellen HTML-Dokumentes einen vollstaendigen URL fuer die Anfrage an den Server zusammenzusetzen.

Und bei Aufruf des Hauptdokumentes ueber http://example.net/xyz [1] oder http://example.net/xyz/ kommt dabei dann entweder http://example.net/blahblubb.jpg oder http://example.net/xyz/blahblubb.jpg heraus.

Das kann man aber umgehen, in dem man nicht Dokument-relativ verlinkt, sondern relativ zur Domainwurzel, also mit fuehrendem Slash. Das hat aber wiederum den Nachteil, dass dann alle Links nicht mehr stimmen, sollte man das Ganze mal in eine andere Verzeichnisebene umziehen wollen - hier muss man also ueberlegen, welchen Kompromiss man eingehen will.

Daher solltest du einen Zugriff ohne "/" einfach auf die Ressource mit "/" umleiten.

Das sollte man sowieso, da *ein* Inhalt unter *genau* *einer* Adresse erreichbar sein sollte, und nicht unter mehreren.
(Und http://example.net/xyz und http://example.net/xyz/ sind eben zwei verschiedene Ressourcen.)

Hört sich nach ner Guten idee an. Hab ich eben auch schon versucht umzusetzen. Aber ich schaff es einfach nicht. Wie müsste meine .htaccess-Date denn dann aussehen damit beide Umleitungen klappen?

Derzeit hast du den Slash zwingend erforderlich gemacht:

RewriteRule xyz/(.*)$ /xyz.php?id=$1

Ihn an dieser Stelle optional zu machen, waere aber ungut - weil dann nicht nur xyz/abc, sondern auch xyzabc gematcht wuerde.

Man koennte ihn nur dann optional machen, wenn nach xyz nichts weiteres mehr kommt.
Aber eine eigene Regel, die lediglich xyz auf xyz/ umleitet, waere m.E. das sinnvollste.

MfG ChrisB

[1] example.com/.net/.org sind fuer Beispiele vorgesehen, .de nicht - also verwende bitte kuenftig eine der ersteren.