Ich habe ein Problem, wo ich im Vorfeld dachte "das ist ja ganz einfach, mal eben..."
Ich habe eine Seite im Seitenbaum mit dem Alias "infos".
Meine Dateierweiterung lautet standardgemäß ".html"
Der Aufruf der Seite (mit zusätzlichen Parametern, die ich benötige), klappt einwandfrei:
http://hostname.de/infos.html?kid=1&...itle=Hallowelt
Jetzt möchte ich gerne die Seite per mod_rewrite wie folgt aufrufen können:
http://hostname.de/infos/1/1/Hallowelt
und habe mir dazu testweise die Rewrite Rule mit einer 301er Weiterleitung angelegt
Das klappt auch.Code:RewriteRule ^infos/(.*)/(.*)/(.*)$ /infos.html?kid=$1&tid=$2&title=$3 [R=301,L]
Der Browser ruft dann die Seite
http://hostname.de/infos.html?kid=1&...itle=Hallowelt
auf.
Soweit so gut - die Regel greift also.
Jetzt will ich aber keine 301er haben (weil dann nämlich doch die reale URL im Browser steht und Google diese auch so indizieren würde), sondern eine interne Umleitung bzw ein Rewriting.
Also habe ich die Regel angepasst
Aber dann meldet Contao einen 404er.Code:RewriteRule ^infos/(.*)/(.*)/(.*)$ /infos.html?kid=$1&tid=$2&title=$3 [NC,L]
Im Log steht dann
No active page for page ID "", host "hostname.de" and languages "de-DE, de, en-US, en" (http://hostname.de/infos/1/1/Hallowelt)
Bei einer 301er Weiterleitung ruft der Browser die Seite tatsächlich also als infos.html auf, beim Rewriting der URL passiert das aber anscheinend nicht - sodass Contao den Alias/die Page ID nicht ermitteln kann.
Was mache ich falsch?
Ich denke, hier kommen sich ggf bestehende Rewrite-Regeln ins Gehege, da ja bei Aufruf von infos.html grundsätzlich eh schon ein Rewriting greift, damit Contao die index.php/infos.html aufruft.