Seite 1 von 1

redirect-Frage

Verfasst: 19.05.2010, 15:52
von bionade
Hallo an alle im Forum!

Aufgrund meiner Unkenntnis von htaccess-Themen muss ich hier eine ganz simple Frage stellen:

Ich hatte ein Projekt unter einer alten Domain und bin jetzt mit dem selben Projekt auf eine neue Domain umgezogen. Ist folgender Code in der .htaccess geeignet die Linkpower mitzunhemen:

Code: Alles auswählen

Redirect permanent / http://www.neue-domain.de
Wäre super, wenn mir hier jemand helfen könnte, denn die Alternative, die ich eigentlich vorhatte, wäre bei Strato mit einem teureren Paket verbunden.

Dies wäre eigentlich der gewünschte Code gewesen:

Code: Alles auswählen

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^www\.alte-domain\.de$ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ https://www.neue-domain.de [L,R=301]
Danke schon mal vorab!
Bionade[/code]

Verfasst:
von

Re: redirect-Frage

Verfasst: 19.05.2010, 17:56
von Mork vom Ork
bionade hat geschrieben:

Code: Alles auswählen

Redirect permanent / http://example.com/
Hier antwortet dein Server auf die Frage nach /bla/fasel

HTTP/1.0 301 Moved permanently
Location: https://example.com/bla/fasel

Code: Alles auswählen

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^www\.alte-domain\.de$ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$  http://example.com/[L,R=301]
Hier antwortet dein Server auf die Frage nach /bla/fasel

HTTP/1.0 301 Moved permanently
Location: https://example.com/

Also fast identisch, nur wird beim ersten der Pfad mit übernommen, was bei einem einfachen Umzug überaus sinnvoll ist. Willst du den Pfad trotzdem allen Ernstes abschneiden, geht das auch einfacher mit Redirect: RedirectMatch permanent . https://example.com/

Der einzige Grund, nicht auf Redirect/RedirectMatch zu setzen ist, wenn alter und neuer Webspace identisch sind, also alte und neue Domain auf dasselbe Serververzeichnis zeigen. Dann ist eine Prüfung der Domain notwendig, die nur mit mod_rewrite möglich ist.

Eine davon unabhängige Frage wäre, ob du das, was du mit dem Rewrite-Krams machst, auch tatsächlich willst. Die Weiterleitung funktioniert nämlich nur, wenn 1. die angefragte Domain nicht www.alt.example.com ist und 2. die angefragte Datei nicht existiert. Ruft jemand alt.example.com auf (ohne www.): Keine Weiterleitung. Existiert die Datei auf dem alten Webserver: Keine Weiterleitung.

Re: redirect-Frage

Verfasst: 19.05.2010, 19:54
von 800XE
Mork vom Ork hat geschrieben: Eine davon unabhängige Frage wäre, ob du das, was du mit dem Rewrite-Krams machst, auch tatsächlich willst. Die Weiterleitung funktioniert nämlich nur, wenn 1. die angefragte Domain nicht www.alt.example.com ist und 2. die angefragte Datei nicht existiert. Ruft jemand alt.example.com auf (ohne www.): Keine Weiterleitung. Existiert die Datei auf dem alten Webserver: Keine Weiterleitung.
Ergänzung

so wie es da oben steht

Code: Alles auswählen

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^www\.alte-domain\.de$ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$  http://example.com/[L,R=301]
Ist es eine Endlosschleife

wird "www.alte-domain-de" aufgerufen, passiert garnix
das "!" bedeutet "NICHT" = "was NICHT so ist .... wird zu"

wird NICHT "www.alte-domain-de", sondern z.B. "www.lölölö.net"
wird es zu "example.com" .... was selbst NICHT "www.alte-domain-de" ist

und da "example.com" NICHT "www.alte-domain-de" ist
wird jetzt immer "example.com" zu "example.com" weil es NICHT "www.alte-domain-de" ist

Verfasst:
von

Verfasst: 21.05.2010, 10:18
von S0l0ng
hierzu hab ich noch folgendes problem

habe in der htaccess jetzt

Code: Alles auswählen

RedirectMatch permanent . http://example.com/blabla/
wenn ich die Adresse old-example.com jetzt aufrufe leitet er super weiter an example.com./blabla

Aber: Ich habe auf old-example.com/link.php noch von extern einen Link (die Seite gibt es nicht) und bei einem Klick auf den Link macht er trotzdem
example.com/blablalink daraus. Was läuft hier falsch?

Es wäre natürlich einfach die nichtexistierende auch weiterzuleiten aber es gibt noch unzählige externe links die ich nicht alle manuell in der htaccess eintragen kann

Verfasst: 21.05.2010, 10:39
von Mork vom Ork
S0l0ng hat geschrieben:

Code: Alles auswählen

RedirectMatch permanent . http://example.com/blabla/
Aber: Ich habe auf old-example.com/link.php noch von extern einen Link (die Seite gibt es nicht) und bei einem Klick auf den Link macht er trotzdem
example.com/blablalink daraus.
Du rufst old.example.com/link.php auf und landest auf example.com/blablalink? Wenn du old.example.com/fasel.bla aufrufst, landest du dann auch auf example.com/blablafasel?

In jedem Fall: Das kann nicht an obiger Zeile liegen, dagegen sprechen gleich drei Gründe (festes Ziel, das keine Erweiterung vorsieht; Ziel wird nur teilweise übernommen, der abschließende Schrägstrich fehlt; angehängte Quelle wird auch nur teilweise übernommen, obwohl nirgends eine Logik für die Trennung gegeben ist).

Da du außer obiger RedirectMatch-Zeile sicher sonst nichts in der .htaccess stehen hast (ist ja sinnlos, wenn du eh alles weiterleitest), wende dich an deinen Hoster, um dem Problem auf den Grund zu gehen.

Verfasst: 21.05.2010, 13:51
von S0l0ng
ok ich denke ich weiß was los ist. wenn ich old.example.com/faselbla im browser aufrufe komme ich wie gewollt auf example.com. Klicke ich den Link auf der anderen Webseite (nach old.example.com/faselbla.php) komme ich auf example.com/faselbla.php

Wenn ich mir die andere Webseite im Explorer ansehe ist da gar kein Link - nur die URL im Quelltext (als Text). Scheinbar macht mein Firefox eine klickbare URL draus und da hab ich noch die falsche Zieladresse im Cache - drum klappt es wohl nicht. Wie gesagt beim eintippen in beiden Browsern funktioniert es schonmal!