2016-09-16 6 views
0

Ich habe eine Seite:Apache Rewrite an verschiedenen Orten

oldsub.oldsite.com, dass ich jetzt zu newsub.newsite.com

neu schreiben müssen Bisher habe ich diese, die für die Website funktionieren scheint :

<VirtualHost *:80> 
    ServerName oldsub.oldsite.com 
    Redirect 301/http://newsub.newsite.com 
    </VirtualHost> 

ABER

Es gibt eine Seite, die ich brauche, um einen anderen Speicherort auf der neuen Seite zu umleiten.

oldsub.oldsite.com/oldpage muss jetzt gehen newsub.newsite.com/bla/bla/bla/newpage

Wie kann ich diese beiden Dinge zu kombinieren? , d. H. Eine bestimmte Seite wird auf die neue Seite auf der neuen Seite umgeleitet, und alles andere geht nur auf die Homepage der neuen Seite.

+0

Platzieren Sie einfach eine Ausnahme für die spezifischere URL _before_ die allgemeinere "catch all", die Sie bereits haben. – arkascha

+0

@arkascha Können Sie vielleicht ein Beispiel geben, wie dieser vollständige vhost dann aussehen würde? – SAguy

Antwort

0

Legen Sie einfach eine Ausnahme für die spezifischere URL, bevor die allgemeinere „catch all“ Sie bereits haben:

<VirtualHost *:80> 
    ServerName oldsub.oldsite.com 

    RewriteEngine on 
    RewriteRule ^/oldpage http://newsub.newsite.com/bla/newpage [L,R=301,QSA] 

    Redirect 301/http://newsub.newsite.com 
</VirtualHost> 

Sie müssen natürlich die Rewrite-Modul in Ihrem HTTP-Server für die. Aber es sollte mit einem einzigen Klick für alle typischen Distributionen zur Verfügung stehen.

+0

Hat nicht funktioniert es scheint. schlagen oldsub.oldsite.com/oldpage hat mich zu diesem geschickt: newsub.newsite.comoldpage/ – SAguy

+0

Sie _did_ laden Sie Ihre HTTP-Server-Konfiguration (Neustart der Deamon)? – arkascha

+0

Oh, und deaktivieren Sie den Client-Cache zum Testen oder verwenden Sie eine anonyme Registerkarte. Wahrscheinlich haben Sie versucht, eine Zwischenspeicherung von _did_ in der Vergangenheit durchzuführen. '301' ist eine _permanente_ Umleitung ... – arkascha

0

Dank @arkascha für den Rat. Hat mich in die Schreibrichtung gebracht. Dies ist, was funktioniert hat:

<VirtualHost *:80> 
ServerName oldsub.oldsite.com 

RewriteEngine on 
RedirectMatch 301 ^/oldpage http://newsub.newsite.com/bla/newpage 

Redirect 301/http://newsub.newsite.com 
</VirtualHost> 

scheint, wie die RewriteRule und leiten nicht gut zusammen arbeiten?

+0

Warten Sie, immer noch ein Problem. Wenn ich oldsub.oldsite.com/etwas habe, leitet es mich zu newsub.newsite.com etwas weiter, aber es sollte mich zu newsub.newsite.com bringen. Die in redirectmatch angegebene alte Seite funktioniert einwandfrei, alles andere jedoch nicht. – SAguy