2016-05-17 11 views
1

Ich umadressiere meine alte Site-URL auf eine neue Site.alte https, die Probleme in htaccess Redirect verursachen

Ich habe einen htaccess erstellt, der alle alten Links (außer root) in den neuen Pfad mit dem Verzeichnis/shop/umleitet. Es funktioniert alles gut, aber die alten https ist, was der gesamte Verkehr wird und es wirft einen Zertifikatfehler, weil es nicht SSL auf dem neuen Server-Konto ist.

Hier ist der aktuelle htaccess.

RewriteEngine on 

RewriteCond %{HTTP_HOST} ^oldsite.com [NC,OR] 
RewriteCond %{HTTP_HOST} ^www.oldsite.com [NC] 
RewriteCond %{REQUEST_URI} ^/$ [NC] 
RewriteRule (.*)$ https://www.newsite.com/ [R=301,NC] 

RewriteCond %{HTTP_HOST} ^oldsite.com [NC,OR] 
RewriteCond %{HTTP_HOST} ^www.oldsite.com [NC] 
RewriteRule ^(.*).(php|html)$ https://www.newsite.com/shop/$1.$2 [L,R=301,NC] 

Jeder Rat würde sehr geschätzt werden, danke im Voraus!

~ M

+0

Es ist ein wenig unklar ist, was Ihre Frage, aber wenn Sie möchten Verkehr auf nicht-ssl neue Seite umgeleitet, Ersetzen Sie einfach "https" durch "http" in RewriteRules –

+0

Die alte Seite war auf https, so dass der gesamte aktuelle Verkehr von Google, Backlinks usw. zu ihm geht. Der obige htaccess funktioniert gut für http, aber wenn ich einem alten Link mit https folge, wird kein SSL-Fehler ausgegeben. Ich muss Code zum htaccess hinzufügen, um die HTTPS-Version der alten Website auf die neue Website umzuleiten, so dass es den Fehler nicht gibt und ich keinen Datenverkehr verliere. – Michael

+0

Sie betreiben also oldsite.com und newsite.com auf demselben Apache, haben aber ein SSL-Zertifikat nur für newsite.com? –

Antwort

0

Es gibt keine Möglichkeit, Ihr Problem mit .htaccess zu lösen. Sie können die HTTP-Umschreibung nicht verwenden, um von HTTPS an eine beliebige Stelle umzuleiten, wenn Sie nicht über eine funktionierende HTTPS-Site verfügen, da ein SSL-Zertifikat für Client und Server erforderlich ist, um über HTTPS miteinander zu kommunizieren. Sie sollten einen anderen virtuellen Host für oldsite.com erstellen, der die Weiterleitung durchführt (Sie sollten in der Lage sein, heutzutage sehr günstiges oder sogar kostenloses SSL-Zertifikat zu erhalten).

Andere ähnliche Antworten:

How to redirect HTTPS requests to HTTP without a certificate (Apache VirtualHosts)

How to redirect https to http without any SSL Certificate

https://serverfault.com/questions/429274/how-to-redirect-from-https-to-http-before-server-error

+0

Gibt es keine Möglichkeit, HTTPS vor anderen Regeln und Bedingungen zu deaktivieren? Ich habe das in einem anderen Thread gesehen, aber dieser spezielle Code hat in meinem Fall nicht funktioniert. RewriteEngine On RewriteCond {HTTPS} off RewriteRule^$ https! (. *): //www.% {HTTP_HOST}% {REQUEST_URI} [L, R = 301] RewriteCond % {HTTP_HOST}!^Www \. RewriteRule^(. *) $ Https: //www.% {HTTP_HOST}% {REQUEST_URI} [L, R = 301] Michael

+0

Nein, das ist der Hauptzweck der SSL. Die Nicht-SSL-Anforderung erreicht niemals .htaccess (oder die Site überhaupt), es sei denn, die Site ist mit einem gültigen Zertifikat konfiguriert. –

+0

Ich sehe. Danke für die Hilfe. – Michael