.htaccess Umschreibung dynamischer IDs in CMS
Hallo zusammen
Ich habe für meine Contao-Website eine PHP-Datei geschrieben, welche mir für jedes Mitglied eine eigene Profilseite darstellt. Das Unschöne daran ist momentan noch, dass die URL jetzt mit /profil.html?id=10 im Browser angezeigt wird. Um die ganze Sache etwas suchmaschinenoptimierter zu gestalten, wollte ich die URL mit .htaccess umschreiben:
Code:
Somit könnte ich die Seite ja z.B. wie folgt aufrufen: /mitglied.10.html ($2 wird mit der ID 10 ersetzt. Weitere Infos hier http://www.modrewrite.de/mod-rewrite/beispiele/statische-url/)
Leider funktioniert diese Weiterleitung nicht. Es erscheint die Meldung: Seite nicht gefunden.
Ich vermute stark, dass Contao das Aufrufen blockiert, da es diese Seite im CMS nicht gibt.
Code:
Ich habe dann meine Code-Zeile mit RewriteEngine On ganz oben auf Zeile 1 bei der .htaccess platziert. Leider werde ich aber auch so immer zur 404-Seite weitergeleitet.
Wie kann ich beide Code-Zeilen in einer .htaccess verwenden damit sie sich gegenseitig nicht in die Quere kommen?
Vielen Dank für eure Hilfe und Gruss
Marco
Ich habe für meine Contao-Website eine PHP-Datei geschrieben, welche mir für jedes Mitglied eine eigene Profilseite darstellt. Das Unschöne daran ist momentan noch, dass die URL jetzt mit /profil.html?id=10 im Browser angezeigt wird. Um die ganze Sache etwas suchmaschinenoptimierter zu gestalten, wollte ich die URL mit .htaccess umschreiben:
Code:
RewriteRule ^([^.]*)\.([^.]*)\.html$ /profil.html?id=$2 [QSA,PT,L]
Somit könnte ich die Seite ja z.B. wie folgt aufrufen: /mitglied.10.html ($2 wird mit der ID 10 ersetzt. Weitere Infos hier http://www.modrewrite.de/mod-rewrite/beispiele/statische-url/)
Leider funktioniert diese Weiterleitung nicht. Es erscheint die Meldung: Seite nicht gefunden.
Ich vermute stark, dass Contao das Aufrufen blockiert, da es diese Seite im CMS nicht gibt.
Code:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .*\.html$ index.php [L]
Ich habe dann meine Code-Zeile mit RewriteEngine On ganz oben auf Zeile 1 bei der .htaccess platziert. Leider werde ich aber auch so immer zur 404-Seite weitergeleitet.
Wie kann ich beide Code-Zeilen in einer .htaccess verwenden damit sie sich gegenseitig nicht in die Quere kommen?
Vielen Dank für eure Hilfe und Gruss
Marco
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 225330
Url: https://administrator.de/contentid/225330
Ausgedruckt am: 22.11.2024 um 22:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo Marco,
hast du den Abschnitt Suchmaschinenfreundliche URLs verwenden in der Installationsanleitung schon mal gelesen ?:
Grüße Uwe
hast du den Abschnitt Suchmaschinenfreundliche URLs verwenden in der Installationsanleitung schon mal gelesen ?:
Wenn Sie einen Apache-Webserver haben und mod_rewrite verwenden dürfen, können Sie Contao dazu veranlassen, suchmaschinenfreundliche URLs zu generieren, die wie statische HTML-Seiten aussehen. Die dazu benötigten Rewrite-Regeln sind in der .htaccess.default-Datei im Contao-Verzeichnis gespeichert. Benennen Sie diese Datei um in .htaccess, damit sie vom Apache-Server erkannt wird, und rufen Sie anschließend das Modul "Einstellungen" im Contao-Backend auf. Wählen Sie die Option "URLs umschreiben" in der Gruppe "Frontend-Einstellungen" aus und speichern Sie Ihre Änderungen. Contao generiert jetzt statische URLs wie z.B. home.html anstatt index.php?id=12.
Hallo Marco,
bin jetzt nicht der Contao-Spezi aber ich hab mir das System mal angeschaut, denke das es hier mit einem einfachen Rewrite nicht getan ist, da Contao die Seite aus dem letzten Teil der URL extrahiert. Dazu müsstest du eine benutzerdefinierte Funktion in das System einhängen,um die Systemfunktionen generateFrontendUrl und getPageIdFromUrl zu ergänzen, wie hier geschildert:
http://de.contaowiki.org/Strukturierte_URLs
Grüße Uwe
bin jetzt nicht der Contao-Spezi aber ich hab mir das System mal angeschaut, denke das es hier mit einem einfachen Rewrite nicht getan ist, da Contao die Seite aus dem letzten Teil der URL extrahiert. Dazu müsstest du eine benutzerdefinierte Funktion in das System einhängen,um die Systemfunktionen generateFrontendUrl und getPageIdFromUrl zu ergänzen, wie hier geschildert:
http://de.contaowiki.org/Strukturierte_URLs
Grüße Uwe