Mit welcher Umleitungsregel würde ich alle Seiten olddomain.example
umleiten, unter die umgeleitet werden soll newdomain.example
?
Die Site hat eine völlig andere Struktur, daher möchte ich, dass jede Seite unter der alten Domain auf die neue Domain- Indexseite umgeleitet wird .
Ich dachte, das würde reichen (unter dem Basisverzeichnis olddomain.example):
RewriteEngine On
RewriteRule ^(.*)$ http://newdomain.example/ [R=301]
Wenn ich jedoch zu navigiere, werde olddomain.example/somepage
ich zu weitergeleitet newdomain.example/somepage
. Ich erwarte eine Weiterleitung nur nach newdomain.example
ohne das Seitensuffix.
Wie halte ich den letzten Teil draußen?
.htaccess
mod-rewrite
Yuval Adam
quelle
quelle
RewriteEngine on
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=301,L]
* stackoverflow.com/a/7578810/1066234Antworten:
Kann so sein:
quelle
RewriteCond %{HTTP_HOST} !^NEWDOMAIN\.com$ [NC]
?Die folgende Antwort könnte möglicherweise eine Endlosumleitungsschleife verursachen ...
Hier leitet dieser alles nach dem Domainnamen in der URL auf genau dieselbe Kopie in der neuen Domain-URL um:
www.example.net/somepage.html?var=foo
leitet weiter zuwww.newdomain.com/somepage.html?var=foo
quelle
Nur um zu verdeutlichen, dass meine ursprüngliche Lösung nach dem Entfernen der im Weg befindlichen Hosting-Weiterleitung auch funktioniert:
quelle
Ich habe dies für mein Wordpress-Blog als .htaccess verwendet. Es konvertiert http: //www.blah.example/asad , http: //blah.example/asad , http: //www.blah.example2/asad usw. in http: //blah.example/asad Vielen Dank an alle andere Antworten Ich habe das herausgefunden.
quelle
Das hat bei mir funktioniert
quelle
Es gibt verschiedene Möglichkeiten, dies zu tun, und verschiedene Weiterleitungen. Ich habe sie unten aufgeführt:
301 (Permanent) Weiterleitung: Zeigen Sie eine gesamte Site permanent auf eine andere URL. Dies ist die häufigste Art der Umleitung und in den meisten Situationen nützlich. In diesem Beispiel leiten wir zur Domain "example.com" um:
302 (Temporäre) Weiterleitung: Zeigen Sie eine gesamte Site auf eine andere temporäre URL. Dies ist nützlich für SEO-Zwecke, wenn Sie eine temporäre Zielseite haben und zu einem späteren Zeitpunkt wieder zu Ihrer Hauptzielseite wechseln möchten:
Leiten Sie index.html in einen bestimmten Unterordner um:
Leiten Sie eine alte Datei in einen neuen Dateipfad um:
Auf eine bestimmte Indexseite umleiten:
quelle
Redirect 301 / http://example.com/$1
alle Seiten der ursprünglichen Site zum Stamm der neuen Site umgeleitet$1
ist hier nicht erforderlich, Sie denken an dieRedirectMatch
Direktive (aber dann müssten Sie noch eine Erfassungsgruppe definieren, auf die$1
verwiesen werden soll).Redirect
Anweisungen Gleiches für Gleiches umleiten, möchte das OP nur auf die Homepage der neuen Site umleiten (obwohl dies an sich nicht zu empfehlen ist). Möglicherweise müssen Sie dieRedirectMatch
Direktive verwenden, wenn Sie nur zu einer bestimmten URL umleiten möchten.Wenn Sie von einem Ort zur Subdomain umleiten möchten, können Sie Folgendes verwenden:
Redirect 301 /Old-Location/ http://subdomain.yourdomain.com
quelle
RewriteEngine On
wirft bei Verwendung 500 interne Fehler. Es ist ein sehr eingeschränkter Webspace. VerwendenRedirect 301 / http://foo
ist der einzig mögliche Weg, um damit umzugehen.Wenn sich die neue Domain, zu der Sie Ihre alte Site umleiten, auf einem anderen Host befindet, können Sie einfach eine verwenden
Redirect
Dadurch werden alle Anforderungen von
olddomain
an umgeleitetnewdomain
.Redirect
Richtlinie wird nicht funktionieren oder kann a verursachenRedirect loop
dass sich sowohl Ihre neue als auch Ihre alte Domäne auf demselben Host befinden. In diesem Fall müssen Siemod-rewrite
die Umleitung basierend auf dem angeforderten Host-Header verwenden.quelle
Mein Ruf erlaubt mir nicht, eine Antwort zu kommentieren, aber ich wollte nur darauf hinweisen, dass die am höchsten bewertete Antwort hier einen Fehler enthält:
sollte einen Schrägstrich vor dem $ 1 haben, also
quelle
Meine Lösung als SymLinks funktionierte auf meinem Server nicht, daher habe ich in meinem PHP ein If verwendet.
quelle
Dies ist ein Fehler in älteren Versionen von Apache (und damit mod_rewrite), bei dem das Pfadpräfix an den neu geschriebenen Pfad angehängt wurde, wenn es geändert wurde. Siehe hier
Ich denke, es wurde in Apache2 V2.2.12 behoben. Es gibt ein spezielles Flag, das Sie verwenden müssen und das ich hier hinzufügen werde, wenn ich es finde. (Ich denke, es war NP für No Path.)
quelle
Unter dem Gesichtspunkt der Benutzerfreundlichkeit wäre es besser, wenn Sie auch den Pfad mit der Anfrage senden (dh was Sie gerade haben) und Ihre neue Site damit umgehen lassen:
(und noch besser, dies automatisch zu tun.)
Dies ist natürlich eine Menge Codierung und Heuristik für eine größere Website, aber meiner Meinung nach würde sich dies in Bezug auf die Benutzerzufriedenheit auszahlen (wenn Ihr sorgfältig gespeichertes Lesezeichen Ihres Traumprodukts Sie nur zur Startseite von newdomain.com führt, dies ist frustrierend.)
quelle
Wenn Sie möchten, dass die Umleitung eine neue, unterschiedliche Site (Domain) ohne Parameter oder Seiten vervollständigt, verwenden Sie Folgendes:
quelle
.htaccess
da es einfach nicht mit URLs im Dokumentstamm übereinstimmt. Es würde in einer Serverkonfiguration oder einem VirtualHost-Kontext funktionieren.Ich habe die Antwort von user968421 und die Lösung des OP ausprobiert, aber der Browser hat einen Sicherheitsfehler für eine Checkout-Seite angezeigt. Ich kann dir nicht genau sagen warum.
Unser Gastgeber (Site Ground) konnte es auch nicht herausfinden.
Die endgültige Lösung war knapp, aber eine kleine Änderung an der Antwort von user968421 (Randnotiz: Im Gegensatz zum OP habe ich versucht, auf die entsprechende Seite umzuleiten, nicht nur auf die Homepage, sodass ich den Rückverweis [
$1
nach der Domain] von user968421 beibehalten habe Antworten):Haben Sie die Optimierung von diesem htaccess-Umleitungsgenerator erhalten , der von einem Host Gator-Artikel empfohlen wird (verzweifelte Zeiten, verzweifelte Maßnahmen, nicht wahr?).
quelle
Einfach so und dies überträgt die nachfolgende Abfrage nicht von der URL zur neuen Domain.
quelle
Verwenden Sie bedingte Weiterleitungen mit dem Hoster
Options -FollowSymLinks
undAllowOverride -Options
deaktivieren Sie ihn, wenn auch einige lokale Dateien bereitgestellt werden sollen:Beispiel .htaccess
In diesem Beispiel wird die lokale Datei index.html bereitgestellt und alle anderen Mitarbeiter werden auf eine neue Domäne umgeleitet.
quelle
Versuchen Sie diese Methode, um alle auf die neue Domain der Homepage umzuleiten. Es funktioniert für mich:
quelle
Die vorherigen Antworten haben bei mir nicht funktioniert.
Ich habe diesen Code verwendet. Wenn Sie OSX verwenden, stellen Sie sicher, dass Sie das richtige Format verwenden.
quelle