2016-02-04 3 views
0

Я переношу сайт в новый домен, а при перемещении весь сайт на https. Мне нужны следующие сценарии для всех перенаправлять https://new.comhtaccess перенаправление http: // (www.) Old.com и https: // (www.) Old.com на https: // new

http://old.com, https://old.com, http://www.old.com, https://www.old.com, http://new.com, http://www.new.com, https://www.new.com

Я пытался решить эту проблему весь день и может получить некоторые сценарии работы, но и другие не все. Мой код на данный момент выглядит следующим образом ....

RewriteEngine On 
    RewriteCond %{HTTP_HOST} ^old\.com$ [OR] 
    RewriteCond %{HTTP_HOST} ^www\.old\.com$ [OR] 
    RewriteCond %{HTTP_HOST} ^www\.new\.com$ 
    RewriteRule (.*)$ https://new.com/$1 [R=301,L] 

Это не работает для https://(www.)old.com. и http://(www.)old.com перенаправляется на http://new.com.

Любая помощь будет с благодарностью принята. Благодарю.

ответ

0

Не используйте множество проверок, если запрос был сделан против какого-либо из «неправильных» доменов, проверьте его, был ли он не, сделанный против единственного права.

# if request was not made against new.com, 
RewriteCond %{HTTP_HOST} !^new\.com$ [OR] 
# or if the request was not made via HTTPS 
RewriteCond %{HTTPS} off 
# redirect to https://new.com/… 
RewriteRule (.*) https://new.com/$1 [R=301,L] 
+0

Это простой и элегантный и выглядит так, как будто он должен работать, но по какой-либо причине https: // (www.) Old.com по-прежнему не перенаправляется. Мне интересно, происходит ли какое-то кеширование, потому что это, кажется, бросает вызов логике. – Jules

+0

Может быть проблемой кэширования - можете ли вы попробовать в другом браузере проверить? – CBroe

+0

И, конечно же, вам по-прежнему нужен действующий SSL-сертификат для '(www.) Old.com', иначе запрос даже не попадет на сцену, где вы _could_ выполните перенаправление. Это случай? – CBroe