Seite 1 von 1

Abschließendes Slash, / , bei MR, Mod Rewrite, modrewrite

Verfasst: Do 29. Nov 2007, 23:16
von stefkey
Hallo,

ich die 4.6.15 MR installiert und bekomme jetzt folgende URL:

http://www.example.com/kategorie/


Ist es denn möglich das abschließende Slash Zeichen ( / ) wegzubekommen?

Ich habe schon in der .htaccess etwas rumgeschraubt, leider ohne Erfolg.

Kann mir jemand einen Tip geben?



Viele Grüße,
stefkey

Verfasst: Do 29. Nov 2007, 23:46
von wosch

Verfasst: Fr 30. Nov 2007, 00:34
von stefkey
Ja, habs gefunden nach Stundenlanger suche, grrrr

Danke wosch!


Auf Seite 26 beschreibt Panti das:
panti hat geschrieben: Im Moment ist folgendes nicht möglich:
http://www.domain.ch/xyz
man muss den URL explizit mit einem Slash beenden, also so
http://www.domain.ch/xyz/

Die Rules einfach durch folgende ersetzen (gilt nur für drei Unterverzeichnisse), dann klappt es (wer den Code effizienter gestalten kann, bitte melden!):

@stese: evtl. beim nächsten Update einbinden?

Code:

RewriteRule ^([^/]+)/([^/]+)/([^/]+)/(.*).html$ front_content.php?parts[]=$1&parts[]=$2&parts[]=$3&artname=$4 [QSA,L]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/$ front_content.php?parts[]=$1&parts[]=$2&parts[]=$3 [QSA,L]
RewriteRule ^([^/]+)/([^/]+)/([^/\.]+)$ front_content.php?parts[]=$1&parts[]=$2&parts[]=$3 [QSA,L]
RewriteRule ^([^/]+)/([^/]+)/(.*).html$ front_content.php?parts[]=$1&parts[]=$2&artname=$3 [QSA,L]
RewriteRule ^([^/]+)/([^/]+)/$ front_content.php?parts[]=$1&parts[]=$2 [QSA,L]
RewriteRule ^([^/]+)/([^/\.]+)$ front_content.php?parts[]=$1&parts[]=$2 [QSA,L]
RewriteRule ^([^/]+)/(.*).html$ front_content.php?parts[]=$1&artname=$2 [QSA,L]
RewriteRule ^([^/]+)/$ front_content.php?parts[]=$1 [QSA,L]
RewriteRule ^([^/\.]+)$ front_content.php?parts[]=$1 [QSA,L]
RewriteRule ^(.*).html$ front_content.php?artname=$1 [QSA,L]
RewriteRule ^$ front_content.php [QSA,L]



Gruss
Panti

aber ich bekomme trotzdem den abschließenden Slash!

Was könnte noch falsch sein?



Grüße,
stefkey

PS In dem entsprechenden Thread kann ich leider nix schreiben, ich lande imer wieder auf der Forenstartseite! Deshalb hier!

Verfasst: Fr 30. Nov 2007, 09:32
von delinquent
Durch Änderung der ModRewrite-Regel bekommst Du auch den Slash niemals weg. Das heißt lediglich, dass die URLs ohne abschließenden Slash ebenfalls akzeptiert und umgeschrieben werden. Wenn Du den abschließenden Slash in den Frontend-Links eliminieren wolltest, müsstest Du das im Quellcode ändern.

Gruß,
Manuel

Verfasst: Fr 30. Nov 2007, 09:52
von stefkey
Danke.

Im Quellcode ändern heißt dann wohl = größere Sache = Mehr als 2 Zeilen in einer Datei ändern.
Oder?


Danke und Grüße,
stefkey

Verfasst: Fr 30. Nov 2007, 10:32
von kummer
wenn du erlaubst: wieso willst du das eigentlich weghaben? das abschliessende / ist völlig richtig. eine url endet entweder auf einen dateinamen (typsicherweise mit extension) oder auf ein verzeichnis. der zweite fall wird hier emuliert (kategorie = verzeichnis).

ohne modrewrite (den fall also, den wir abbilden möchten) wird der server zunächst versuchen, mit der bezeichneten url eine datei aus dem dateisystem zu öffnen. wenn es keine solche gibt, geht der server davon aus, dass es sich um ein verzeichnis handelt, fügt dabei ein slash an und wird versuchen, die index-datei zu öffnen (deren bezeichner kann spezifiziert werden).

wenn du beim browser eingibst: http://www.mydomain.de/test

wird er dir (normalerweise) folgendes daraus machen: http://www.mydomain.de/test/

ich würde also meinen, der fall, den du vorliegend hast, ist völlig richtig.

Verfasst: Fr 30. Nov 2007, 10:39
von stefkey
okay, ich dachte der Server macht den Slash und sucht die index.html ohne das der Browser das dann zeigt durch ein Slash nach der Kategorie. Hier zeigt er aber den Slash!

Oder ist es anders?

Vielen Dank für die Hinweise.


Gr,
stefkey

Verfasst: Fr 30. Nov 2007, 11:06
von kummer
nein, das ist genau so. das siehst du richtig. allerdings übersteuerst du diesen prozess mit modrewrite. aber wir möchten ja dem besucher der seite einen eindruck vermitteln, es handle sich nicht um ein cms.