2016-05-17 14 views
1

私は古いサイトのURLを新しいサイトにリダイレクトしています。古いhttpsがhtaccessリダイレクトの問題を引き起こしています

すべての古いリンク(ルートを除く)を、/ shop /ディレクトリが追加された新しいパスにリダイレクトするhtaccessを作成しました。それはすべて正常に動作しますが、古いhttpsはすべてのトラフィックに行き、新しいサーバアカウントにSSLがないので証明書エラーが発生します。

ここに現在の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] 

アドバイスをいただきますようお願い申し上げます。

〜M

+0

あなたの質問が何であるかを少しは不明ですが、非SSL新しいサイトにトラフィックをリダイレクトしたい場合は、 RewriteRulesで 'https'を' http'に置き換えてください –

+0

古いサイトはhttps上にあったので、googleやバックリンクなどから現在のトラフィックはすべて流れています 上記のhtaccessはhttpでもうまく動作しますが、httpsで古いリンクをたどるとSSLエラーは発生しません。 古いサイトのhttpsバージョンを新しいサイトにリダイレクトするためにhtaccessにコードを追加する必要があるため、エラーは発生せず、トラフィックも失われません。 – Michael

+0

したがって、同じサイト上でoldsite.comとnewsite.comを実行していますが、newsite.com専用のSSL証明書を持っていますか? –

答えて

0

.htaccessを使用して問題を解決する方法はありません。クライアントとサーバーがHTTPSを使用して互いに話し始めるためにもSSL証明書が必要であるため、HTTPSリライトを使用してHTTPSからどこにでもリダイレクトすることはできません。 リダイレクトを行うoldsite.com用の別の仮想ホストを作成する必要があります(最近は非常に安くて無料のSSL証明書を取得できるはずです)。

他の同様の回答:

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

他のルールや条件より前にhttpsをオフにする方法はありますか?私は別のスレッドでこれを見てきましたが、この特定のコードは私の場合には機能しませんでした。 <のIfModule mod_rewrite.c> RewriteEngineのRewriteCondで{HTTPS} の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

いいえ、これがSSLの主な目的です。サイトが有効な証明書で構成されていない場合、非SSLリクエストは.htaccess(またはサイト)に届くことさえありません。 –

+0

私は参照してください。お手伝いありがとう。 – Michael

関連する問題