Seite 1 von 1
URL Rewriting einzelner dynamischer URLs
Verfasst: 30.12.2008, 18:18
von herrenlos
Hallo liebe Forengemeinde,
ich würde mich freuen, wenn mir ein Forenmitglied weiterhelfen könnte....!
Ich betreibe ein Forum und aufgrund der der Struktur bzw. der vorgeschalteten CMS sehen einige Pfade leider wie folgt aus
www.forendomain.de/index.php?pag=contentseite
Ich würde gerne nun einzelne (von mir ausgesuchte) URLs konform in eine statische URL umwandeln wollen, also
www.forendomain.de/contentseite.html
Ich habe nun so einiges ausprobiert, doch es will mir einfach nicht gelingen, daher bitte ich Euch um Eure Hilfe.
Wichtig hierbei ist, dass die mod_rewrite Regel nicht pauschal für alle "Problem-URLs" gelten soll, sondern nur die von mir ausgewählte URLs sollen ein "Facelifting" bekommen.
Sicherlich werde ich irgendwann mal auf ein anderes CMS umsteigen und dies mit dem Forum verknüpfen, doch momentan ist das aufgrund der Größe und Struktur nicht ganz so trivial, daher benötige ich die etwas unschönere Übergangslösung.
Vielen Dank im Voraus.
Verfasst:
von
Content Erstellung von
ABAKUS Internet Marketing
Ihre Vorteile:
- einzigartige Texte
- suchmaschinenoptimierte Inhalte
- eine sinnvolle Content-Strategie
- Beratung und Umsetzung
Jetzt anfragen:
0511 / 300325-0
Verfasst: 30.12.2008, 19:05
von bloddy newbie
Hallo herrenlos,
du kannst einzelne Seiten wie folgt umleiten:
Code: Alles auswählen
RewriteEngine on
RewriteBase /
RewriteRule /contentseite.html$ index.php?page=contentseite [L]
Zusätzlich empfehle ich dir die alten Uris Permanent auf die neuer Struktur umzuschreiben:
Code: Alles auswählen
RewriteCond %{REQUEST_URI} index\.php
RewriteCond %{QUERY_STRING} page=contentseite$
RewriteRule .* contentseite.html? [R=301]
Du musst nun die oben aufgeführte Passage entsprechend der Anzahl umzuleitender Seiten duplizieren und "contentseite" entsprechend deines Vorhabens anpassen. Am Ende könnte das dann wie folgt aussehen:
Code: Alles auswählen
RewriteEngine on
RewriteBase /
# Kontakt
RewriteRule kontakt.html$ index.php?page=kontakt&dummy [L]
RewriteCond %{REQUEST_URI} index\.php
RewriteCond %{QUERY_STRING} page=kontakt$
RewriteRule .* kontakt.html? [R=301]
# Impressum
RewriteRule impressum.html$ index.php?page=impressum&dummy [L]
RewriteCond %{REQUEST_URI} index\.php
RewriteCond %{QUERY_STRING} page=impressum$
RewriteRule .* impressum.html? [R=301]
Nachtrag: In meiner ersten Ausführung ist mir ein Denkfehler unterlaufen - passiert

. Ich habe nun "&dummy" angehangen, damit es zu keiner Umleitungsschleife kommt. Suchmaschinen und Besucher bekommen diesen Parameter nicht zu sehen. Er dient also lediglich als Trick, um der Umleitungsschleife zu entgehen. Bitte beachte auch das Fragezeichen am Ende der Permanent Redirect Rules.
Grüße und einen guten Rutsch
Verfasst: 30.12.2008, 19:34
von herrenlos
Hi,
vielen Dank. Habs mit meinen Daten ergänzt und wie beschrieben eingefügt, doch leider erhalte ich dann folgende Fehlermeldung:
"Additionally, a 400 Bad Request error was encountered while trying to use an ErrorDocument to handle the request."
Die HTML-Datei als solches muss doch nicht existieren, oder? Ich möchte ja schließlich nur, dass die dynamsiche "einfach nur" als statische HTML-Endung umschrieben wird.
Hab ich ein Kriterium nicht beachtet?
Auch Dir einen guten Rutsch und bis hier her vielen Dank für Deine Bemühungen.
Verfasst: 30.12.2008, 20:10
von bloddy newbie
Nein die HTML Datei muss nicht existieren. Mir ist bei der ersten Ausführung leider ein Fehler unterlaufen. Meine erstes Posting habe ich nun angepasst und den Code getestet - funktioniert.
Beste Grüße
Verfasst: 30.12.2008, 22:45
von herrenlos
Hi,
vielen lieben Dank. Einfach Klasse!

Ein tolles, nachträgliches, Weihnachtsgeschenk!
Eine kleine Anmerkung... Bei mir funktioniert es nur mit einer kleinen Änderung... Die Änderung ist fett markiert. Ohne diese Ergänzung erhalte ich weiterhin die obige Statusmeldung.
Code: Alles auswählen
RewriteEngine on
RewriteBase /
# Kontakt
RewriteRule kontakt.html$ index.php?page=kontakt&dummy [L]
RewriteCond %{REQUEST_URI} index\.php
RewriteCond %{QUERY_STRING} page=kontakt$
RewriteRule .* kontakt.html? [[b]L,[/b]R=301]
Dir von Herzen alles Gute.