Назад | Перейти на главную страницу

.htaccess перенаправление для ssl и не-ssl www на не-www

У меня есть сайт Apache CentOS (последний) с поддоменами, я хочу, чтобы обычные пользователи использовали http, а при использовании корзины покупок использовали https; Я использую не-www, поэтому хочу перенаправить все www на URL без www, как показано ниже; теперь проблема, с которой я столкнулся, - это https ssl url; У меня есть единственный сертификат ssl (а не подстановочный знак), поэтому мне нужно, чтобы все www перенаправлялись на не-www; но я получаю страницу «Это ненадежное соединение», вынуждая пользователей исключить этот сертификат или выйти; после того, как вы его исключите, он выполнит перенаправление; но не раньше, как я могу это исправить, чтобы они не получали эту страницу?

RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

Если я правильно вас понял:

http://yourdomain.com -> no redirect
http://www.yourdomain.com -> redirects to http://yourdomain.com
https://yourdomain.com -> no redirect, works fine
https://www.yourdomain.com -> Untrusted warning, then redirects to https://yourdomain.com

Предполагая, что я правильно вас понял, это природа SSL. Если кто-то попытается подключиться к вашему серверу с помощью сертификата yourdomain.com с любым именем хоста, кроме yourdomain.com, вы получите эту ошибку. Так что у кого-то нет возможности подключиться к https://www.yourdomain.com и не получите сообщение об ошибке (если вы не зарегистрируете для этого ключ ... а это не то, что вы хотели сделать).

В этом случае более или менее «работает по назначению». Люди, которые перейдут на неправильный URL, будут ныть, пока не перейдут на правильный.

Если вам просто нужно поддерживать ваши доменные имена без www и www, вы можете сделать это с помощью одного сертификата. Перенаправление с помощью htaccess работать не будет, вы все равно получите ошибку «недоверенный». Вот тот, который делает https://www.domain.com/ и https://domain.com/ без необходимости покупать 2 отдельных