2016-06-07 10 views
-1
RewriteEngine on 
RewriteRule ^(.*)$ http://www.NEWfoobar.com/$1 [R=301,L] 

Ich habe diese Zeile Code aus https://stackoverflow.com/a/7578810, innerhalb .htaccess und es funktioniert derzeit von www.OLDfoobar.com-www.NEWfoobar.com Migration und aller Unterverzeichnisstruktur gerade fein umleiten (beabsichtigtes Verhalten, alle gut).htaccess aus alter Stammdomäne zu neuer spezifischer Unterverzeichnis Domain

jetzt, wie füge ich zusätzliche Regel, die www.OLDfoobar.com erfasst, um auf eine bestimmte Seite in www.NEWfoobar.com umleiten? zum Beispiel sagen, `www.NEWfoobar.com/welcomeToNewDomain

Die [L] Flagge ist das, was mir bekommt. Und übrigens, ich bin mir nicht sicher, was die $1 ist. Das kann kein Regex-Flag für die RewriteRuleMuster sein, ja?

AKZEPTIERT ANTWORT

RewriteEngine on 
RewriteRule ^/?$ http://www.NEWfoobar.com/some/sub/directory [R=301,L] 
RewriteRule ^(.*)$ http://www.NEWfoobar.com/$1 [R=301,L] 
+0

Ja, das ist es, was th Das aktuelle Skript geht gut. Außerdem möchte ich eine zusätzliche Regel implementieren, wo es von einfach ** olddomain ** zu ** newdomain/sub-directory-uri ** – Valkyrurr

+0

@starkeen umleitet, mein voriger Kommentar und Absatz 2 ist so klar wie es nur geht . also ja. :) – Valkyrurr

Antwort

1

Sie benötigen

RewriteEngine on 
RewriteRule ^(.*)$ http://www.NEWfoobar.com/welcomeToNewDomain [R=301,L] 

The $1 die erste Capture-Gruppe verwenden zu verstehen, die der Wert zwischen den Klammern auf der linken Seite.

Das L in den Optionen bedeutet, dass die Rewrite-Regeln nicht mehr verarbeitet werden (dh dies ist die letzte Regel), wenn die Übereinstimmung zutrifft.

Die ^(.*)$ Mittel:

`^` match beginning of string 
`(.*)` match zero or more characters and store in capture group 1 
`$` match end of string 

Wenn ich vermissen habe verstanden eine nur die Wurzel-Anfragen umleiten möchten, während die alte Capture Sie die bestehende eine neue Regel hinzufügen müssen halten vor, der liest

RewriteRule ^/?$ https://www.NEWfoobar.com/welcomeToNewDomain [R=301,L] 

Dies wird entweder einen leeren Pfad übereinstimmen oder nur /

+0

ok, hab es. aber es funktioniert immer noch nicht. Das 'RewriteRule' * -Muster * bedeutet im Grunde jede beliebige Zeichenfolge. Wenn ich also "www.FOfoobar.com/any-sub-directory-string" eingeben würde ... würde ich Ihr vorgeschlagenes Ziel angeben, würde ich zu "http://www.NEWfoobar.com/welcomeToNewDomain/any-sub- directory-string' – Valkyrurr

+0

@Valkyrurr Nein, du würdest das nicht tun, weil ich das '$ 1' nicht in die Zielregel aufgenommen habe, also würde es das nicht beinhalten. Das Schlüsselelement ist auch, dass das Regelmuster zu jedem Pfad in seiner Gesamtheit passt. Wenn diese Regel nicht funktioniert, wie sehen Sie das Verhalten? –

+0

@Valkyrurr Ich habe die Frage vielleicht etwas missverstanden, siehe meine aktualisierte Antwort. Wenn Sie möchten, dass "www.FOfoobar.com/any-sub-directory-string" zu einer einzelnen URL umleitet, verwenden Sie meine erste Antwort. Wenn Sie einfach eine neue Rewrite-Regel hinzufügen möchten, die nur "www.FOnfussbar.com" ist, dann fügen Sie mein zweites Beispiel vor Ihrem vorhandenen Rewriterule ein –

Verwandte Themen