Seite 1 von 1

Trailing Slashes behalten oder vermeiden?

Verfasst: 30.11.2004, 13:26
von Maschenka
Zur Zeit verwende ich das Strickmuster https://domain.invalid/foo/bar/, das per .htaccess passend umgeleitet wird. Groß war mein Schreck, als ich feststellen mußte, daß Yahoo immer nur auf https://domain.invalid/foo/bar verlinkte und somit Fehlermeldungen produzierte. Da dies ein bekanntes Problem zu sein scheint, gegen das man erstmal machtlos ist, werden Anfragen an /foo/bar jetzt immer auf /foo/bar/ mit Meldung 301 weitergeleitet.

Beim Verfolgen meiner internen Links sind sich aber alle Suchmaschinen einig und verwenden immer die Trailing Slashes.

Wäre es im Zuge einer Umstrukturierung nun eigentlich sinnvoller, die .htaccess dahingehend zu modifizieren, daß ich mich den Gepflogenheiten einiger Suchmaschinen anpasse und generell nur noch ohne Trailing Slashes arbeite?

Verfasst:
von

Verfasst: 30.11.2004, 17:12
von manute
technisch richtiger ist es wohl mit slashes, denn so läuft es auch normalerweise, wenn es sich um echte verzeichnisse handelt.
auch der internet explorer verzichtet aber zb in der history gern mal auf die slashes, deswegen ist es das einzig richtige, was du jetzt gemacht hast, ohne slash per 301 auf mit slash weiterleiten.

Verfasst: 05.12.2004, 22:59
von Maschenka
Die Alternative wäre, jeweils auf https://domain.invalid/foo/bar.php zu verlinken, denn intern arbeite ich eh mit mod_rewrite, der Aufwand wäre also nicht größer, und ich würde die Weiterleitung per 301 umgehen, weil sowohl Suchmaschinen als auch echte Besucher gleich an der richtigen Adresse wären. Spricht etwas dafür, eine der Methoden zu bevorzugen?

Verfasst:
von
SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Verfasst: 05.12.2004, 23:04
von manute
nein, sollte genau aufs gleiche rauskommen.
theoretisch hast du dann allerdings immernoch das problem, dass neugierige leute https://domain.invalid/foo/ bzw. https://domain.invalid/foo aufrufen könnten... :D

Verfasst: 05.12.2004, 23:06
von Maschenka
Korrekt, aber das sind im Laufe des letzten halben Jahres etwa eine Handvoll Leute gewesen, dafür kann ich dann auch noch was basteln.

Verfasst: 29.12.2004, 15:00
von Maschenka
Ich spiele gerade etwas an der .htaccess herum und habe vielleicht einen Denkfehler.

Es gibt Seiten, die benötigen nur einen Parameter, zum Hinzufügen des Trailing Slash verwende ich dies:
RewriteCond %{REQUEST_URI} ^/foo/(.*)
RewriteRule ^(.*) /$1/ [L,R]

So wird dann aus https://domain.invalid/foo/bar -> https://domain.invalid/foo/bar/


Dann gibt es noch Seiten mit zwei Parametern, da funktioniert das Rewrite nur, wenn ich in der letzten Zeile den letzten Slash weglasse:
RewriteCond %{REQUEST_URI} ^/foo/(.*)/(.*)
RewriteRule ^(.*) /$1/$2 [L,R]

https://domain.invalid/foo/bar1/bar2 -> https://domain.invalid/foo/bar1/bar2/

Wenn ich es so mache, wie es mir logisch erscheinen würde:
RewriteRule ^(.*) /$1/$2/ [L,R]
Dann bekomme ich sogar zwei Slashes am Ende, also
https://domain.invalid/foo/bar1/bar2 -> https://domain.invalid/foo/bar1/bar2//


Und nachdem ich in https://www.php-resource.de/tutorials/read/10/1/ einiges über reguläre Ausdrücke gelesen habe, ist mir immer noch nicht klar, warum es besser wäre, anstatt
RewriteCond %{REQUEST_URI} ^/foo/(.*)/(.*)
lieber
RewriteCond %{REQUEST_URI} ^/foo/(.*)/(.*)$
zu schreiben. Gibt es da vielleicht etwas Empfehlenswerteres zum Durchlesen?