Seite 1 von 1

Redirect permanent geht nicht

Verfasst: 03.08.2009, 16:45
von wayne
Hi Leute

Ich hab ein kleineres Problem mit einer Weiterleitung in der .htaccess :(

Da gibt es eine Domain B, welche auf unsere Page verweist! Unter dieser Domain ist nur eine index.htm geschaltet und die hat nen Link auf unsere Website (domain B/index.htm).

Unsere Website ist aber direkt unter einer anderen neuen Domain A erreichbar und wir wollen diese jetzt auch etablieren!

Lange rede kurzer Sinn, wir möchten alles was von der Domain B auf unsere Website kommt, weiterleiten auf unsere Domain A, und zwar nicht versteckt, so dass auch die URL in der Adressleiste von Domain B nach Domain A geändert wird, so dass auch alle User die neue Domain sehen können.

Eigentlich dürfte das ja nicht so ne Hexerei sein, dachte ich zumindest :lol:

Aber mit "Redirect permanent / https://www.domainA.de/" funzt es nicht.
Die Page wird dann über beide Domains nicht mehr angezeigt.
Mod_rewrite ist aktiviert auf dem Appache, aber ich krieg das einfach nicht geregelt!

Habe auch schon mit "RewriteRule ^domainB\index.htm$ domainA\index.htm [R]" versucht, aber auch das klappt nicht.

Ich habe Euch hier mal die bestehende .htaccess reingestellt, weil da von unserem Vorgänger noch einige andere Einträge vorhanden sind und ich nicht weiss, ob die das Problem verursachen, dass die Weiterleitung nicht funktioniert.

Code: Alles auswählen

RewriteEngine On
Options +Followsymlinks
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.* - [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*/images/(.*)$ /images/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*/uploads_user/(.*)$ /uploads_user/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ /profile.php?user=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/rssfeed/([0-9]+)/?$ /rssfeed.php?user=$1&rfid=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/rssfeeds/?$ /rssfeed.php?user=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^rssfeeds/tag/([^/]+)/?$ /rssfeeds.php?tag=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/polls/([0-9]+)/?$ /poll.php?user=$1&poll_id=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/polls/([0-9]+)/([^/]+)?$ /poll.php?user=$1&poll_id=$2$3 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/polls/?$ /polls.php?user=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/albums/([0-9]+)/([0-9]+)/?$ /album_file.php?user=$1&album_id=$2&media_id=$3 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/albums/([0-9]+)/?$ /album.php?user=$1&album_id=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/albums/([0-9]+)/([^/]+)?$ /album.php?user=$1&album_id=$2$3 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/albums/?$ /albums.php?user=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/blog/([0-9]+)/?$ /blog_entry.php?user=$1&blogentry_id=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/blog/([^/]+)?$ /blog.php?user=$1$2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/blog/?$ /blog.php?user=$1 [L]
Bin über jeden Hinweis sehr dankbar

Gruss Wayne

Verfasst:
von

Verfasst: 03.08.2009, 17:12
von w3news
Eigentlich sollte dies doch reichen:

Code: Alles auswählen

redirect 301 / http://www.altedomain.de/ http://www.neuedomain.de/
Vielleicht einfach nur das in die htaccess schreiben, wenn ich das richtig verstehe brauchst du den rest ja nicht mehr...

Verfasst: 03.08.2009, 17:33
von Mork vom Ork
w3news hat geschrieben:Eigentlich sollte dies doch reichen:

Code: Alles auswählen

redirect 301 / http://www.altedomain.de/ http://www.neuedomain.de/
Redirect hat höchstens drei Parameter, nicht vier.
wayne hat geschrieben:Aber mit "Redirect permanent / https://www.domainA.de/" funzt es nicht. Die Page wird dann über beide Domains nicht mehr angezeigt.
Dass es nicht funktioniert, ist klar, sonst würdest du wohl kaum fragen, und mit „funzt nicht“ kann niemand etwas anfangen. Solche Bequemlichkeiten solltest du dir abgewöhnen und dir lieber ein bisschen Mühe geben, den Fehler genau zu beschreiben.

Dein Webserver führt ein Fehlerprotokoll, schau da rein. Meldet der Browser einen Fehler? Auch das hilft bei der Ursachenforschung.

Wie sind die Domains auf dem Dateisystem des Servers abgebildet, zeigen die womöglich beide auf dasselbe Verzeichnis?

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: 03.08.2009, 18:01
von wayne
Mork vom Ork hat geschrieben:Dass es nicht funktioniert, ist klar, sonst würdest du wohl kaum fragen, und mit „funzt nicht“ kann niemand etwas anfangen. Solche Bequemlichkeiten solltest du dir abgewöhnen und dir lieber ein bisschen Mühe geben, den Fehler genau zu beschreiben.

Dein Webserver führt ein Fehlerprotokoll, schau da rein. Meldet der Browser einen Fehler? Auch das hilft bei der Ursachenforschung.

Wie sind die Domains auf dem Dateisystem des Servers abgebildet, zeigen die womöglich beide auf dasselbe Verzeichnis?
Ok, sorry, dachte mit "Die Page wird dann über beide Domains nicht mehr angezeigt." wäre ausreichend. :oops:

HAb das alles nochmals durchgespielt und siehe da, Chrome gibt mir da mehr zurück als Firefox! Er meldet mir:

Fehler 310 (net::ERR_TOO_MANY_REDIRECTS): Zu viele Umleitungen.

Kann das die Ursache sein, dass irgendwo anders noch eine Umleitung sitzt und wenn ja, wo?

Leider kann ich auf das Appache-Log noch nicht zugreifen, werde die Info aber sobald als möglich nachreichen.

Und ja, die beiden Domains weisen beide auf das selbe Verzeichnis! Wir haben nur diese eine Website.

Danke für die Hilfe
Gruss Wayne

Verfasst: 03.08.2009, 18:36
von Mork vom Ork
wayne hat geschrieben:die beiden Domains weisen beide auf das selbe Verzeichnis!
Da liegt euer Problem. Dein Vorhaben, Redirect / bla zu nutzen, ist zwar richtig, aber wenn du das bei eurer Konstellation in die .htaccess schreibst, gilt der Quellpfad / logischerweise für beide Domains, denn es ist ja keine Domain gegeben (und es lässt sich auch keine angeben). a.exa.mple/ leitet daher nach b.exa.mple/ und b.exa.mple/ weiter nach a.exa.mple/ usw.

Eigentlich sollten Domains immer auf eigene Verzeichnisse zeigen, es ist grundsätzlich die sauberste Lösung (ob das bei eurem Hoster möglich ist, musst du bei ihm in Erfahrung bringen). Nun hast du aber einen Sonderfall, da die Domains ja doch zusammengehören. Und da du vielleicht auch gleich bei der neuen Domain eine Entweder-mit-oder-ohne-www-Regelung einführen möchtest, kannst du dir auch mit mod_rewrite behelfen:

RewriteEngine on
RewriteCond %{HTTP_HOST} !=neu.example.com
RewriteRule (.*) http://neu.example.com/$1 [L,R=301]

Die RewriteCond-Zeile prüft, ob die angefragte Domain nicht (!) gleich (=) neu.example.com ist, und falls dem so ist, leitet die RewriteRule-Zeile an den entsprechenden Pfad unter neu.example.com weiter.
Eure Seiten treten damit nur noch unter neu.example.com in Erscheinung, nicht mehr unter alt.example.com, www.alt.example.com oder www.neu.example.com, alle diese Anfragen werden an neu.example.com weitergeleitet. Möchtest du lieber www.neu.example.com haben, ändere die beiden Zeilen entsprechend.

(Davon unabhängig solltest du die übrigen Einträge in der .htaccess einzeln prüfen und rauswerfen, wenn du keine Verwendung dafür mehr hast.)
Leider kann ich auf das Appache-Log noch nicht zugreifen, werde die Info aber sobald als möglich nachreichen.
Das Fehlerprotokoll ist IMHO ein unverzichtbares Mittel, um seine Webseiten sauber zu halten. Da solltest du mindestens einmal die Woche reinschauen, wenn nötig täglich, und bei einer gut geführten Seite sammeln sich da auch nicht viele Meldungen.

Verfasst: 03.08.2009, 18:56
von wayne
Mork vom Ork hat geschrieben:Da liegt euer Problem. Dein Vorhaben, Redirect / bla zu nutzen, ist zwar richtig, aber wenn du das bei eurer Konstellation in die .htaccess schreibst, gilt der Quellpfad / logischerweise für beide Domains, denn es ist ja keine Domain gegeben (und es lässt sich auch keine angeben). a.exa.mple/ leitet daher nach b.exa.mple/ und b.exa.mple/ weiter nach a.exa.mple/ usw.
So beschrieben klingt das logisch, stimmt :roll:
Mork vom Ork hat geschrieben: RewriteEngine on
RewriteCond %{HTTP_HOST} !=neu.example.com
RewriteRule (.*) http://neu.example.com/$1 [L,R=301]

Die RewriteCond-Zeile prüft, ob die angefragte Domain nicht (!) gleich (=) neu.example.com ist, und falls dem so ist, leitet die RewriteRule-Zeile an den entsprechenden Pfad unter neu.example.com weiter.
Eure Seiten treten damit nur noch unter neu.example.com in Erscheinung, nicht mehr unter alt.example.com, www.alt.example.com oder www.neu.example.com, alle diese Anfragen werden an neu.example.com weitergeleitet. Möchtest du lieber www.neu.example.com haben, ändere die beiden Zeilen entsprechend.
Wow, perfekt! Funktioniert einwandfrei!!! :D
Wahrscheinlich werden jetzt aber viele User das Problem haben, dass deren alte Cookies nicht mehr funktionieren und sie so nicht mehr auf Unsere seite kommen, oder? Zumindest bei mir funzte es erst, nachdem ich die Cookies gelöscht hatte.

Was ich aber jetzt nicht verstehe, ist dass wenn ich im Browser alt.example.com aufrufe, wird er richtig weitergeleitet, aber in der Adresszeile steht noch immer alt.example.com :( Kriegt man das nicht irgendwie so gebacken, dass auch die URL in der Adresszeile auf neu.example.com zeigt? Vielleicht mit dem [R] an richtiger Stelle?
Mork vom Ork hat geschrieben: (Davon unabhängig solltest du die übrigen Einträge in der .htaccess einzeln prüfen und rauswerfen, wenn du keine Verwendung dafür mehr hast.)
Werd ich machen, versprochen :)
Mork vom Ork hat geschrieben:Das Fehlerprotokoll ist IMHO ein unverzichtbares Mittel, um seine Webseiten sauber zu halten. Da solltest du mindestens einmal die Woche reinschauen, wenn nötig täglich, und bei einer gut geführten Seite sammeln sich da auch nicht viele Meldungen.
Jo werd ich auch, bisher war es ein Sharing-Projekt und der machte die und der das, aber wir bringen das schon noch auf die Reihe!

Vielen Dank für Deine Hilfe!!!

Gruss Wayne

Verfasst: 03.08.2009, 20:36
von Mork vom Ork
wayne hat geschrieben:
Mork vom Ork hat geschrieben:RewriteEngine on
RewriteCond %{HTTP_HOST} !=neu.example.com
RewriteRule (.*) http://neu.example.com/$1 [L,R=301]
Was ich aber jetzt nicht verstehe, ist, dass wenn ich im Browser alt.example.com aufrufe, wird er richtig weitergeleitet, aber in der Adresszeile steht noch immer alt.example.com :(
Dann greift die Regel nicht, es muss in der Adressleiste neu.example.com erscheinen.
Mir ist das Verhalten bei dir im Augenblick ein Mysterium, aber vielleicht probierst du erstmal, die /.htaccess gänzlich zu leeren und nur die obigen drei Zeilen reinzuschreiben; eventuell kommt sich da was in die Quere.
Wahrscheinlich werden jetzt aber viele User das Problem haben, dass deren alte Cookies nicht mehr funktionieren und sie so nicht mehr auf Unsere seite kommen, oder? Zumindest bei mir funzte es erst, nachdem ich die Cookies gelöscht hatte.
Cookies sind immer mindestens auf die Domain beschränkt. Die Cookies von alt.example.com haben daher keinen Einfluss auf neu.example.com, und ohne etwas mehr Aufwand bekommst du die auch nicht rüber.

Verfasst: 04.08.2009, 00:10
von wayne
Mork vom Ork hat geschrieben:
wayne hat geschrieben:
Mork vom Ork hat geschrieben:RewriteEngine on
RewriteCond %{HTTP_HOST} !=neu.example.com
RewriteRule (.*) http://neu.example.com/$1 [L,R=301]
Was ich aber jetzt nicht verstehe, ist, dass wenn ich im Browser alt.example.com aufrufe, wird er richtig weitergeleitet, aber in der Adresszeile steht noch immer alt.example.com :(
Dann greift die Regel nicht, es muss in der Adressleiste neu.example.com erscheinen.
Mir ist das Verhalten bei dir im Augenblick ein Mysterium, aber vielleicht probierst du erstmal, die /.htaccess gänzlich zu leeren und nur die obigen drei Zeilen reinzuschreiben; eventuell kommt sich da was in die Quere.
Mist, ich glaube ich weiss wieso das so ist :( Es scheint so, dass die Domain alt.example.com nicht auf unseren Server verweist, sondern nur über ein iFrame unsere Site auf deren Server anzeigt! Also hat unsere .htaccess ja null Einfluss :o

Boah, was kann man denn da machen?

Gruss Wayne

Verfasst: 04.08.2009, 08:43
von Mork vom Ork
Du klärst die ganze Angelegenheit besser mit deinem Hoster.

Verfasst: 04.08.2009, 11:27
von wayne
Mork vom Ork hat geschrieben:Du klärst die ganze Angelegenheit besser mit deinem Hoster.
Ja ist geschehen und der Fall ist jetzt klar!

Also Domain alt.example.com wird nicht einfach auf unseren Server geleitet per DNS, wie ich ursprünglich dachte, sondern auf einen eigenen Server. Auf diesem Server läuft eine einzelne Startseite, welche mit nem Link über ein iFrame unsere Seite auf deren Server zeigt! Darum bringen auch alle Versuche mit dem redirect und der .htaccess wohl nichts.

Sehe ich das richtig, das wir so überhaupt keine möglichkeit haben, dass die Domain alt.example.com dem User der so auf unsere Page zugreift, mit der neuen Domain neu.example.com angezeigt wird?

Heisst das denn eigentlich, dass jeder beliebige einen Server stellen kann und über seine eigene Domain und iFrame x-beliebige Seiten unter seiner Domain betreiben kann? Das ist doch eigentlich eine Entführung? :wink:

Verfasst: 04.08.2009, 12:24
von Mork vom Ork
wayne hat geschrieben:Sehe ich das richtig, das wir so überhaupt keine möglichkeit haben, dass die Domain alt.example.com dem User der so auf unsere Page zugreift, mit der neuen Domain neu.example.com angezeigt wird?
Die alte Domain gehört euch, es ist eure Entscheidung, was ihr damit macht. Wenn ihr eine Frame-Konstruktion gemietet habt, dann ist das halt so. Möchtet ihr das nicht, mietet etwas anderes.
Heisst das denn eigentlich, dass jeder beliebige einen Server stellen kann und über seine eigene Domain und iFrame x-beliebige Seiten unter seiner Domain betreiben kann?
Betreiben ist der falsche Ausdruck, weder hat er Einfluss auf die Inhalte noch stellt er die Inhalte zur Verfügung. Das Einzige, was er macht, ist fremde Inhalte in seinem Rahmen einzukapseln.
Das ist doch eigentlich eine Entführung? :wink:
Nein, das ist eine mögliche Urheberrechtsverletzung.

Verfasst: 04.08.2009, 12:47
von wayne
Mork vom Ork hat geschrieben:
wayne hat geschrieben:Sehe ich das richtig, das wir so überhaupt keine möglichkeit haben, dass die Domain alt.example.com dem User der so auf unsere Page zugreift, mit der neuen Domain neu.example.com angezeigt wird?
Die alte Domain gehört euch, es ist eure Entscheidung, was ihr damit macht. Wenn ihr eine Frame-Konstruktion gemietet habt, dann ist das halt so. Möchtet ihr das nicht, mietet etwas anderes.

Ne eben nicht! Sonst wäre das ja ein einfaches die umzuleiten! Leider gehört die alte Domain nicht uns, sondern einem Partner aus vergangenen Tagen und der erbt jetzt massig SEO und PR, indem er auf unsere Page per iFrame verweist mit seiner URL.

Deswegen haben wir ja auch eine neue Domain gemacht, die nun wirklich uns gehört :)

Aber da wir nicht alle User verlieren möchten, die noch über die alte Domain, also über sein iFrame zu uns kommen und wir in Google mit der neuen Domain wegen doppeltem Content sehr schlecht gerankt sind, möchten wir halt eine gewisse Zeit einfach alles weiterleiten auf unsere neue Domain, bis sich die URL bei den Usern mal richtig etabliert hat.

Könnte man da ev. mit Java Script was machen, dass sobald jemand über die alte Domain und iFrame auf unsere index.php zugreift, die Page in einem neuen Fenster mit unserer neuen Domain geöffnet wird? So las worst case szenario, schöner wäre halt, dass die User im seben Fenster unsere neue Domain zu sehen kriegen :(

Oder vielleich etwas in der Art:

Code: Alles auswählen

<script> 
<!-- 
if &#40;window!= top&#41; 
top.location.href=location.href 
// --> 
</script>

Verfasst: 04.08.2009, 13:42
von wayne
Huuraaaaa ich habs :D

Code: Alles auswählen

<script>
if&#40;location.href!=top.location.href&#41;&#123;
top.location.href=location.href
&#125;
</script>
Damit hab ichs so hingekriegt, dass auch in nem iFrame unsere Domain angezeigt wird :P

Vielen Dank für Eure Hilfe!