Seite 1 von 1
mod rewrite vs 301
Verfasst: 14.08.2009, 14:37
von Billy04
Hallo zusammen
Habe meine Seite Url technisch umgewandelt und nun ein kleines Problem.
Die Urls waren früher dynamisch. Anbei ein Beispiel:
www.meineseite.de/index.php?thema=12
Die neue Url lautet so:
www.meineseite.de/thema12
soweit so gut... dies habe ich mittels htaccess entsprechend umschreiben lassen.
nämlich so: RewriteRule thema12$ index.php?thema=12
Nun wollte ich jedoch noch die alten Urls, welche schon bei google indexiert sind mittels 301 auf die neuen Urls umleiten lassen.
Dies habe ich so gemacht:
RewriteCond %{QUERY_STRING} ^thema=12$
RewriteRule ^(.*)$
https://www.meineseite.de/thema12? [L,R=301]
Leider klappt dies nicht... der Server lädt und lädt und landet schliesslich in der Fehlermeldung:
Wenn ich jedoch lustigerweise auf das thema13 umleite, dann klappt es einwandfrei.
Gibt dies ein Konflikt mit den umgewandelten urls welche ich schon in der htaccess datei habe?
Habt ihr mir einen Tipp?
Vielen Dank
Gruss Billy
Verfasst:
von
SEO Consulting bei
ABAKUS Internet Marketing Erfahrung seit 2002
- persönliche Betreuung
- individuelle Beratung
- kompetente Umsetzung
Jetzt anfragen:
0511 / 300325-0.
Verfasst: 14.08.2009, 15:01
von Kristian
Hallo
RewriteRule thema12$ index.php?thema=12
Setzt da mal ein [L] dahinter.
Gruß
Kristian
Edit: Eigentlich willst du wohl:
RewriteRule thema(\d+)$ index.php?thema=$1 [L]
schreiben
Verfasst: 14.08.2009, 17:33
von Billy04
danke für den Tipp... funktioniert leider auch nicht...
Verfasst: 14.08.2009, 17:37
von w3news
Nicht so?:
Code: Alles auswählen
RewriteRule thema([0-9])$ index.php?thema=$1 [L]
Verfasst: 14.08.2009, 17:42
von Billy04
das mod rewrite funktioniert bereits.. nur die Umleitung via 301 klappt irgendwie nicht...
hab folgende urls:
www.meineseite.de/index.php?thema=11&subthema=214
wie kann ich diese bspw. auf:
www.meineseite.de/meineneueurl weiterleiten?
Verfasst: 14.08.2009, 18:50
von chris21
Überlege doch einfach mal kurz, was Du machst.
Du leitest A auf B um und B auf A.
Wenn ich nun A aufrufe, was passiert dann? A-B-A-B-A-B- etc. etc. -> Endlosschleife beim Versuch der Umleitung.
Daher solltest Du den Rat von w3news befolgen. Dann hast Du nämlich einen externen Redirect über mod_rewrite von index.php?thema=12 auf thema12 und einen internen Redirect über mod_rewrite von thema12 auf index.php?thema=12 (wobei als URL thema12 erhalten bleibt).
Verfasst: 15.08.2009, 06:07
von Billy04
das verstehe ich... hab aber ein Problem... die urls sehen nämlich so aus:
bsp.
RewriteRule apfelbaum$ index.php?thema=10 [L]
und die Umleitung demnach so:
RewriteCond %{QUERY_STRING} ^thema=10$
RewriteRule ^(.*)$
https://www.meineseite.de/apfelbaum? [L,R=301]
dann klappt dies eben nicht...
Verfasst: 15.08.2009, 13:53
von Kristian
Hallo
w3news hat geschrieben:Nicht so?:
Code: Alles auswählen
RewriteRule thema([0-9])$ index.php?thema=$1 [L]
Die Zeichenklasse [0-9] macht auf eben diese Zahlen. Wenn man damit die 12 erwischen will müsste es
Code: Alles auswählen
RewriteRule thema([0-9]+)$ index.php?thema=$1 [L]
da das + bedeutet, dass eine oder mehrere Zahlen auftreten können.
\d und [0-9] sind identisch, es ist nur eine andere Schreibweise.
Gruß
Kristian
Verfasst: 15.08.2009, 13:58
von Kristian
Hallo
chris21 hat geschrieben:Du leitest A auf B um und B auf A.
Das empfohlene [L] bedeutet last. Wenn die Rule also matched ist danach Schluß.
Sollte also passen.
Gruß
Kristian
Verfasst: 15.08.2009, 14:01
von Kristian
Hallo
Billy04 hat geschrieben:das verstehe ich... hab aber ein Problem... die urls sehen nämlich so aus:
bsp.
RewriteRule apfelbaum$ index.php?thema=10 [L]
und die Umleitung demnach so:
RewriteCond %{QUERY_STRING} ^thema=10$
RewriteRule ^(.*)$
https://www.meineseite.de/apfelbaum? [L,R=301]
dann klappt dies eben nicht...
Deine Anforderungen scheinen sich zeitweise zu ändern...
Du hast jetzt in 4 Post 3 verschiedene.
^thema=10$ matched auf thema=10 und sonst nichts. Wenn es jetz plötzlich thema=10&trala ist klappt es logischerweise nicht.
Überdenk mal was du wirklich willst und poste dann deine komplette .htaccess sonst hat es keinen Sinn.
Gruß
Kristian
Verfasst: 15.08.2009, 14:20
von w3news
@Kristian
okay, das mit dem /d wusste ich nciht, habe immer mit 0-9 oder a-zA-Z gearbeitet
Ansonsten sieht es so aus, dass der TE einmal die URL
https://meineurl.de/?thema=12 auf
https://meineurl.de/thema12 umleiten will und als unterseiten dann anscheinend
https://meineurl.de/?thema=12&subthema=255 auf
https://meineurl.de/thema12/subthema255 umleiten lassen will
Code: Alles auswählen
RewriteRule thema([0-9]+)/subthema([0-9]+)$ index.php?thema=$1&subthema=$2 [L]
So in der Art sollte es dann aussehen... (habs nicht ausprobiert!)