2017-02-14 2 views
1

Wie würde man eine bestimmte Seite in Domäne A auf eine bestimmte Seite in Domäne B in einer htaccess-Datei umleiten? Wir besitzen beide Domains und beide haben Nameserver, die auf einen einzelnen Server verweisen.Umleiten einer bestimmten Seite in Domäne A auf eine bestimmte Seite in Domäne B

Zum Beispiel:

domainA.com/testpage 

gehen sollte

domainB.com/bestpageever 

Hier finden Sie so weit wie ich bekommen haben. (Ich zwinge auch das www vor dem Domain)

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^domainA.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www.domainA.com$ 
RewriteRule ^(.*)$ http://www.domainB.com/bestpageever [R=301,L] 

Diese alle Seiten auf domainA auf die angegebene Seite auf domainB umleiten geschieht, was nicht das, was ich will. Egal, welche Art von Variation ich versuche, ich kann es nicht scheinen, nur "testpage" auf domainA zu "bestpageever" auf domainB umzuleiten.

+0

Welche Varianten haben Sie versucht? Sehen Sie sich die Dokumentation "RewriteRule" (https://devdocs.io/apache_http_server/mod/mod_rewrite#rewriterule) an. – hjpotter92

+1

nicht genug anscheinend ... auch, nachdem ich die @arkascha Antwort gesehen habe, denke ich, dass ich die Dokumentation vielleicht falsch verstanden habe ... – wcc

Antwort

1

Dies ist wahrscheinlich in der Nähe zu dem, was Sie suchen:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^domainA\.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.domainA\.com$ 
RewriteRule ^/?testpage$ http://www.domainB.com/bestpageever [R=301] 

Die obige Regel wird in der http-Server-Host-Konfiguration oder in dynamischen Konfigurationsdateien (.htaccess Style-Dateien) arbeitet.

Wenn Sie setzen diese Regeln in der Host-Konfiguration http-Server Sie diese Regeln dies vereinfachen kann, da dann werden die Regeln nur innerhalb der spezifischen http Host angewendet sie in konfiguriert sind:

RewriteEngine On 
RewriteRule ^/testpage$ http://www.domainB.com/bestpageever [R=301] 

Ein allgemeiner Hinweis : Sie sollten solche Regeln immer lieber in die HTTP-Server-Host-Konfiguration einfügen, anstatt dynamische Konfigurationsdateien (".htaccess") zu verwenden. Diese Dateien sind notorisch fehleranfällig, schwer zu debuggen und verlangsamen den Server wirklich. Sie werden nur als letzte Option für Situationen angeboten, in denen Sie keine Kontrolle über die Host-Konfiguration haben (lesen Sie: wirklich günstige Hosting-Service-Provider) oder wenn Sie eine Anwendung haben, die eigene Schreibregeln schreibt (was ein offensichtlicher Sicherheitsalarm ist)).

+1

Ich würde wahrscheinlich diese 'RewriteCond' behalten, weil:" _Wir besitzen beide Domains und beide haben Nameserver auf einen einzelnen Server zeigen._ "Also, wenn Sie nicht sicher sind, dass DocRoot für beide unterschiedlich ist ... – hjpotter92

+1

@ hjpotter92 In der Tat, vielen Dank, dass Sie darauf hingewiesen haben! Nicht unbedingt ein Problem, aber je nach Setup kann es ein Problem sein. – arkascha

+1

Danke! Das funktioniert. Ja, das Docroot ist in unserem Fall dasselbe. Leider habe ich es mit einem Legacy-System zu tun und möchte die htaccess-Datei-Methode verwenden. – wcc

Verwandte Themen