2015-08-15 3 views
1

Я поместил следующие строки в конфигурацию apache и в .htaccess, но ни один из них не перенаправляет URL-адрес, отличный от www. Мне нужен URL-адрес www, чтобы перейти к URL-адресу, отличному от www, на основании регистрации сертификата SSL.www to non-www redirect не работает с использованием apache config или htaccess

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

Если проблема, с которой вы столкнулись, заключается в следующем: «Я получаю гигантский экран предупреждения и не перенаправляется», тогда проблема не может быть исправлена. По соображениям безопасности браузер не продолжает выяснять, что сертификат недействителен, и поэтому у нас никогда не будет возможности перенаправлять, пока пользователь не продолжит этот экран. Просто убедитесь, что каждая ссылка на вашем сайте без www. – Sumurai8

+0

Вот чего я боялся. Я думал, что перенаправление Apache произойдет до того, как браузер проверит сертификат, но вы предполагаете, что это не так. Благодарю. –

ответ

0

Это не поправимо, кроме убедившись, что все ссылки на ваш сайт использовать mydomain.com вместо WWW-варианта. С помощью https во время рукопожатия браузер проверяет сертификат, который используется. Когда он обнаруживает, что сертификат недействителен, он не будет продолжать запрос, потому что с этого момента сертификат может быть любого, и, следовательно, соединение небезопасно.

Короткий рассказ: поскольку браузер не будет проходить с запросом, сервер никогда не сможет отправить перенаправление. Только если пользователь нажмет, запрос будет завершен, и браузер продолжит перенаправление.

Смежные вопросы