Вопрос по redirect, https, .htaccess – Перенаправить https на не-www и http на www

6

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

Доступ к :

http://mysite.com -redirected to-> http://www.mysite.com

В то время как:

https://www.mysite.com -redirected to-> https://mysite.com

Для нормальныхhttp сайт, я хочу, чтобы заставитьwww.

Но сертификат ssl работает только без www, поэтомуhttps долженnot есть WWW.

Спасибо, если кто-нибудь может мне помочь.

С какой стати ты этого хочешь? Gerben
Поскольку сертификат ssl настроен только для "mysite.com" Zarco
Тогда почему бы не перенаправить http-трафик на версию без www? Gerben

Ваш Ответ

2   ответа
11

Перенаправление отhttps://www.mysite.com вhttps://mysite.com может произойти только после того, как клиент сделал начальный запросhttps://www.mysite.com.

Чтобы это начальное соединение работало, сервер наhttps://www.mysite.com должен иметь сертификат, действительный дляwww.mysite.comв противном случае это соединение даже не произойдет (и сервер не отправит ответ о перенаправлении).

Если вы все еще хотите перенаправление, на том же сервере ваш сервер должен предоставить сертификат, действительный для имен хостов, которые вы хотите обслуживать. Вы должны получить сертификат с двумя DNS-записями Subject Alternative Name:mysite.com а такжеwww.mysite.com; это позволит вам обслуживать оба хоста с одним и тем же сертификатом (а затем при необходимости использовать правила перезаписи).

(Вы также можете использовать индикацию имени сервера с двумя разными сертификатами, если вы ожидаете, что клиенты будут поддерживать его, но это обычно для совершенно разных имен хостов.)

Для СА достаточно распространено выдавать сертификаты, которые действительны для обоихmysite.com а такжеwww.mysite.com когда вы подаете заявку на один из других, иногда без дополнительной платы.

Error: User Rate Limit ExceededRedirectError: User Rate Limit ExceededRewrite???
0

Поместите это в ваш файл .htaccess в вашемnon-HTTPS корень документа:

RewriteCond %{HTTP_HOST} ^mysite.com$
RewriteRule ^(.*)$ http://www.mysite.com/$1 [R]

И это в корне вашего HTTPS-документа:

RewriteCond %{HTTPS} =on
RewriteCond %{HTTP_HOST} ^www.mysite.com$
RewriteRule ^(.*)$ https://mysite.com/$1 [R]
Error: User Rate Limit Exceeded Zarco
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededhttp://mysite.comError: User Rate Limit Exceededhttp://www.mysite.comError: User Rate Limit Exceededhttps://www.mysite.comError: User Rate Limit Exceededhttps://mysite.com Zarco
Error: User Rate Limit Exceeded Zarco

Похожие вопросы