Файл htaccess работает для Chrome и IE, но на полпути в Firefox

1796
Victor Ivanov

Я пытался использовать файл .htaccess для перенаправления http: // на https: //
Я также пытался добавить www. перед доменным именем, если оно не написано.
Я использовал этот код в файле .htaccess

Опции + FollowSymLinks RewriteEngine On RewriteBase / Опции -индексы  # Принудительно использовать https для безопасных соединений # (как указано в вашем SSL-сертификате) RewriteCond% 80 RewriteRule ^ (. *) $ Https: //www.% % [R = 301, L, NE]  # Принудительное использование www перед доменным именем RewriteCond% ! ^ $ RewriteCond% ! ^ Www \. [NC] RewriteCond% off RewriteRule ^ (. *) $ Https: //www.% % [R = 301, L, NE] 

В Chrome и IE сайт открывается, как и ожидалось.
Переходит всегда на https://www.domain.com, независимо от того, является ли входной адрес «www.domain.com» или «domain.com». Но в Firefox он работает правильно только тогда, когда адрес "domain.com".
Когда я размещаю "www.domain.com", браузер Firefox превращает его в
https://www.www.domain.com.
Извините, но я просто не могу найти логику, почему Chrome и IE так хорошо интерпретирует .htaccess, а Firefox делает это на полпути. Firefox 41.0.2, кеш пуст, изменений нет. Я не догадываюсь, кто-нибудь может предложить решение?

0
Я бы использовал порт сервера не 443 ... например, 'RewriteCond% ! ^ 443 $'. Это всегда работает для меня во всех браузерах. Tyson 9 лет назад 0
Упс ... Отсутствует половина: RewriteRule ^ / (. *) Https: //% / $ 1 [NC, R, L] Tyson 9 лет назад 0
Ваша идея, похоже, сработала. Были небольшие опечатки, но я их очистил. Вот код, который я использовал: RewriteCond% ! ^ 443 $ RewriteRule ^ (. *) $ Https: //www.% / $ 1 [R = 301, L] Victor Ivanov 9 лет назад 0

1 ответ на вопрос

0
Victor Ivanov

Благодаря Tyson теперь у меня хорошо работает файл .htaccess.
Вот код, который работал. Измените domain.com своим доменным именем.

Опции + FollowSymLinks RewriteEngine On RewriteBase / Опции -индексы  # Всегда используйте www в домене RewriteCond% ^ ([az.] +)? Domain \ .com $ [NC] RewriteCond% ! ^ Www \. [NC] RewriteRule.? http: //www.%1domain.com% [R = 301, L]  # Проверьте, не используется ли HTTPS, затем перейдите к HTTPS RewriteCond% ! ^ 443 $ RewriteRule ^ (. *) $ Https://www.domain.com/$1 [NC, R = 301, L]  # Перенаправить косые черты ... RewriteRule ^ (. *) / $ / $ 1 [L, R = 301]  # Ручка переднего контроллера ... RewriteCond% ! -D RewriteCond% ! -F RewriteRule ^ index.php [L]