2016-05-17 49 views
1

我正在將舊網站URL重定向到新網站。舊的https導致htaccess重定向問題

我創建了一個htaccess,將所有舊鏈接(除了root)重定向到添加/ shop /目錄的新路徑。這一切都正常,但舊的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中用'http'代替'https' –

+0

舊網站在https上,所有當前的流量來自谷歌,反向鏈接等。 上述htaccess對於http工作正常,但如果我使用https跟蹤舊鏈接,則會引發無SSL錯誤。 我需要將代碼添加到htaccess以將舊版網站的https版本重定向到新網站,因此它不會發生錯誤,並且我不會丟失任何流量。 – Michael

+0

因此,你在同一個Apache上運行oldsite.com和newsite.com,但只有newsite.com的SSL證書? –

回答

0

有沒有辦法解決您的問題,使用.htaccess。如果您沒有正在運行的https站點,則無法使用HTTP重寫從HTTPS重定向到任何位置,因爲客戶端和服務器需要使用SSL證書才能開始使用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?我在另一個線程中看到了這個,但是這個特定的代碼在我的情況下不起作用。 RewriteEngine敘述在 的RewriteCond {HTTPS}關閉 重寫規則^ $ 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