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

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!)