Seite 1 von 1

Alte URI an neue Domain + URI anpassen

Verfasst: 21.09.2009 23:12
von pixelfly
Hallo liebes Forum,

ich hocke nun schon den ganzen Abend an folgendem Problem:

alte Struktur:
http://sub.altedomain.tld/news.php?id=850
http://sub.altedomain.tld/dates.php

neue Struktur:
http://www.neuedomain.tld/service/presse_news-850.php
http://www.neuedomain.tld/termine.php

Zusätzlich soll, falls keine Regel greift, alles von der alten Domain (sub.altedomain.tld) auf die neue Domain (www.neuedomain.tld) per 301 verweisen.
Ausgeschlossen: Verzeichnis /admin und /download

Mein bisheriger Code:

Code: Alles auswählen

RewriteEngine On
Options +FollowSymlinks

RewriteBase /

# Verzeichnis admin nicht umleiten!
RewriteRule ^admin|download - [L]

# Alles nicht definierte auf neue Domain umleiten
RewriteCond %{HTTP_HOST} !^www\.neuedomain\.de$
RewriteRule ^ http://www.neuedomain.de/ [L,R=301]


Das Verzeichnis /admin und /download wird davon nicht tangiert, klappt also wie gewünscht.
Der Verweis von allen nicht definierten URIs auf die neue Domain klappt auch.

Wer kann mir bei der Umsetzung von dem alten Schema auf neue Schema helfen?
Ich bekomm die Regel einfach nicht gebacken.

Trotz Forensuche und Googlen komme ich nicht weiter :-/
Wer kann mir weiterhelfen?

Vielen Dank!!

Gruß,
Stefan

Verfasst: 22.09.2009 12:03
von pixelfly
So, hab mein Anliegen etwas präzisiert und meine RewriteRules durch meine aktuellen Erkenntnisse verbessert.

Kann mir dennoch keiner helfen? :(

Verfasst: 23.09.2009 00:46
von pixelfly
Mit viel probieren hat's nun geklappt:

Code: Alles auswählen

RewriteCond %{QUERY_STRING} id=([0-9]*)
RewriteCond %{SCRIPT_FILENAME} -f
RewriteRule ^news.php$ http://www.neuedomain.tld/service/presse_news-%1.php [R=301,L]



ABER :lol:
http://sub.altedomain.tld/news.php?id?=123

Und als Ausgabe kommt:
http://www.neuedomain.de/service/presse ... php?id=123

Wie bekomme ich am Ende den doofen Querystring weg?

Hat jemand Ideen?

Gruß!

Verfasst: 23.09.2009 11:56
von Gumbo
Du musst in der Ersatz-URL eine leere Query angeben, da sonst die ursprünglich angefragte Query übernommen wird:

Code: Alles auswählen

RewriteRule ^news.php$ http://www.neuedomain.tld/service/presse_news-%1.php? [R=301,L]