2016-08-19 3 views
3

Когда я нахожусь на моем сайте в https://example.com, мой браузер отвечает на ERR_CONNECTION_REFUSED. Обратите внимание, что следующая все работы:Как перенаправить HTTPS без www на HTTPS-www, используя .htaccess?

Как можно перенаправить https://example.com запросы к https://www.example.com с помощью .htaccess?

Я попытался следующие, не похоже на работу:

// .htaccess 

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

ответ

1

Ваши правила использует AND работы от 2 условий, но вы OR.

Вы можете использовать это правило для соблюдения как www и https:

RewriteEngine On 

RewriteCond %{HTTP_HOST} !^www\. [NC,OR] 
RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC] 
RewriteRule^https://www.%1%{REQUEST_URI} [R=301,L,NE] 

Убедитесь, чтобы очистить кэш браузера перед тестированием.


EDIT: Как в комментарии ниже только для https://example.com to https://www.example.com перенаправления вы можете использовать это правило:

RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteRule^https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE] 
+0

Я пробовал это, но я думаю, что это противоречит существующим правилам в httpd.conf. Есть ли способ перенаправления на www, только если запрос «https: // example.com»? – henrywright

+0

Что делать, если исходный URL-адрес 'http: // www.example.com', вам не нужно быть' https: // www.example.com'. Кстати, вы также можете использовать это правило в httpd.conf, просто не забудьте перезапустить Apache и очистить кеш браузера каждый раз (или проверить с помощью командной строки curl). – anubhava

+0

Спасибо за совет @anubhava. 'http: // www.example.com' уже перенаправляется на' https: // www.example.com'. Это просто 'https: // example.com' на' https: // www.example.com', который нуждается в обработке. – henrywright

1

Правило вы должны должны работать, как это.

От ERR_CONNECTION_REFUSED, я бы предположил, что Apache не прослушивает порт https (443).

Но, поскольку все остальное работает, даже перенаправление от http://example.com до https://www.example.com, может возникнуть другая проблема, связанная с сетью, например, конфигурация брандмауэра, позволяющая https через www.example.com, но блокируя через example.com. Вы должны проверить у своего поставщика сервера.

+0

Спасибо, что полезно знать. Я проверю! – henrywright