Ankündigung

Einklappen
Keine Ankündigung bisher.

mod_rewrite (problem mit slash am ende der url)

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mod_rewrite (problem mit slash am ende der url)

    Hallo Leute,

    über:

    Code:
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ /index.php?cid=$1 [NC,L]
    erreiche ich, dass Urls wie:

    - http://www.testest.de/home
    - http://www.testest.de/vita
    - http://www.testest.de/contact

    funktionieren. D.h., dass "http://www.testest.de/index.php?cid=home" für "http://www.testest.de/home" aufgerufen wird.

    Gebe ich "http://www.testest.de/home/" als Url an, funktioniert das Ganze nicht. Hier erhalte ich nur eine nicht css-gestylte Version meiner Startseite.

    Wie erreiche ich das selbe Verhalten für ein Slash am Ende? Also:
    "http://www.testest.de/vita/" führt zu "http://www.testest.de/index.php?cid=vita".

    In der Adresszeile soll natürlich weiterhin "http://www.testest.de/vita/" stehen.

    Habe bereits einiges versucht, komme aber zu keinem Ergebnis.

    Schonmal vielen Dank!
    quibb


  • #2
    Zitat von quibb Beitrag anzeigen
    Gebe ich "http://www.testest.de/home/" als Url an, funktioniert das Ganze nicht.
    Richtig, denn im Grunde genommen ist das eine andere URL. Mit dem Stichwort "trailing slash" findest du eine Menge Stoff zum Lesen.

    Wichtig ist, dass du dich für eine Variante entscheidest, das heißt mit oder ohne trailing slash, siehe http://googlewebmastercentral.blogsp...-to-slash.html

    Möchtest du die URLs in der Form:
    Code:
    http://www.example/home
    sollte die andere Variante
    Code:
    http://www.example/home/
    auf Erstere umleiten. Falls du die zweitere Form bevorzugst, auf die erstere Variante umleiten.

    Bei mir sieht das so aus (ohne trailing slash):
    Code:
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} ^(.*)/$
    RewriteRule ^(.*)/$ %1 [R=301,L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php/$1 [L,QSA]
    Ich finde die Lösung relativ elegant, insofern weder eine Domain angegeben noch die RewriteBase modifiziert werden muss.

    Kommentar

    Lädt...
    X