2015-12-17 4 views
0

У меня есть сервер, который пытается заставить HTTPS и www поддомен.Htaccess force-www rewrite не работает должным образом

В файле Apache конф (устанавливается сервер, у меня нет доступа для записи):

<Location /> 
     RewriteEngine On 
     RewriteCond %{HTTPS} !=on 
     RewriteRule ^/?(.*) https://%{SERVER_NAME}/ [R,L] 
</Location> 

В файле .htaccess

<IfModule mode_rewrite.c> 
RewriteEngine On 
RewriteCond %{HTTP_HOST} ^example\.com [NC] 
RewriteRule (.*) https://www.example.com/$1 [R=301,L,NC] 
</IfModule> 

Однако последний, кажется, не работает если запрос уже HTTPS. Я получаю следующие результаты:

http://example.com -> https://www.example.com 

https://example.com -> https://example.com 

кто-нибудь может пролить свет на то, почему WWW редирект игнорируются запросы HTTPS?

+0

Проверьте, включен ли ваш .htaccess или нет, добавив тот же текст мусора (случайный) поверх вашего .htaccess и посмотрите, генерирует ли он 500 (внутренний сервер) ошибка или нет при посещении вашей страницы в браузере? – anubhava

+0

Кроме того: перенаправление HTTP к HTTPS не кажется полным или правильным? 1) Это временная переадресация. 2) Он всегда перенаправляется на корень, несмотря на захват URL-адреса в 'RewriteRule' _pattern_. – MrWhite

+0

anubhava, я знаю, что файл .htaccess включен, так как есть другие перезаписи ниже описанного выше. w3d, я знаю о недостатках сервера, предоставленного переписать, я не имею никакого контроля над этим, но уже упомянул его о полномочиях. –

ответ

0

Таким образом, проблема заключается в простой опечатке. Мы все пропустили лес за деревьями. Typo in mod e _rewrite.c

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