2015-06-02 6 views
0

Я запускаю Apache/2.2.15 на Centos 6.6 и использую бесплатный сертификат от StartCom. Мой файл домашней страницы: /var/www/index.php, поэтому я создаю файл /var/www/.htaccess со следующим содержимым, как предложено here..htaccess не перенаправлять веб-сайт на https

RewriteEngine On 
# This will enable the Rewrite capabilities 

RewriteCond %{HTTPS} !=on 
# This checks to make sure the connection is not already HTTPS 

RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] 
# This rule will redirect users from their original location, to the same location but using HTTPS. 
# i.e. http://www.example.com/foo/ to https://www.example.com/foo/ 
# The leading slash is made optional so that this will work either in httpd.conf 
# or .htaccess context 

Однако ввод

myWebSite.com 

в поле URL приносит мой сайт в протоколе HTTP. Если я введу

https://myWebSite.com 

вместо этого я получаю свой сайт в протоколе https. Моя цель состоит в том, чтобы получить мой сайт в протокол HTTPS, просто введя

myWebSite.com 

, и я не могу понять, почему файл .htaccess не осуществления этого.

+0

Вы уверены, что ваш .htaccess читается? У вас есть 'AllowOverride All' в вашей конфигурации? –

+0

Исправлена ​​проблема с оригиналом. Теперь, когда я вхожу на mywebsite.com, я получаю сообщение: «Страница не перенаправляется правильно. Firefox обнаружил, что сервер перенаправляет запрос на этот адрес таким образом, который никогда не будет завершен». Раньше у меня не было этой проблемы. Есть ли проблема с моим файлом .htaccess? Спасибо, – OtagoHarbour

+0

У вас была эта ошибка до или после моего ответа? –

ответ

1

Не отображается файл чтения .htaccess. Поэтому убедитесь, что у вас есть AllowOverride All в вашем конфиге.

Также для ваших правил я бы не использовал SERVER_NAME, что не всегда задано, а иногда и неверно. Я бы использовал либо переменную HTTP_HOST, либо ваше фактическое доменное имя. Вы также должны указать 301 для вашего перенаправления, потому что без него 302 по умолчанию. Вы хотите, чтобы это было постоянным перенаправлением.

RewriteEngine On 
# This will enable the Rewrite capabilities 
RewriteCond %{HTTPS} !^on [OR] 
# This checks to make sure the connection is not already HTTPS 
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC] 
RewriteRule ^/?(.*)$ https://example.com/$1 [R=301,L] 

Я также сделал его там, где это было бы удалить www, так как вы не показывают ваш используют его.

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