JavaScript — перенаправление Apache htaccess http на https

Я настроил мой .htaccess файл для перенаправления http://example.com в https://www.example.com. Но http://www.example.com не перенаправляет на https.

У меня есть настройки AWS route 53 на site.com и псевдоним www.example.com, указывающий на example.com.

Вот мой файл .htaccess. Я не могу за всю жизнь понять, как перенаправить все на https://www.example.com.

RewriteBase /
RewriteEngine on

#WARNING: NEEDED FOR ONLINE VERSION - always have www in url
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,l]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{HTTP:X-Forwarded-Proto} ^http$
RewriteRule (.*) https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

1

Решение

  1. Для пользователей CentOS / RHEL убедитесь, что у вас есть следующая строка в httpd.conf (поддержка mod_rewrite — включена по умолчанию).

    LoadModule rewrite_module modules / mod_rewrite.so    
  2. Теперь вам просто нужно отредактировать или создать файл .htaccess в корневом каталоге вашего домена и добавить эти строки, чтобы перенаправить http в https.

    RewriteEngine On
    RewriteCond% {HTTPS}! = Вкл
    RewriteRule ^ /? (. *) Https: //% {SERVER_NAME} / $ 1 [R, L]     
  3. Теперь, когда посетитель набирает http://www.yourdomain.com, сервер автоматически перенаправляет HTTP на HTTPS https://www.yourdomain.com.

  4. Кроме того, чтобы заставить весь веб-трафик использовать HTTPS, вы также можете настроить файл виртуального хоста. Обычно есть два важных раздела конфигурации виртуального хоста, если включен SSL-сертификат; первый содержит конфигурации для незащищенного порта 80.

    Второй — для безопасного порта 443. Чтобы перенаправить HTTP на HTTPS для всех страниц вашего сайта, сначала откройте соответствующий файл виртуального хоста. Затем измените его, добавив конфигурацию ниже.

    NameVirtualHost *: 80
    <VirtualHost *: 80>
    Имя_сервера www.yourdomain.com
    Redirect / https://www.yourdomain.com
    </ VirtualHost>
    
    <VirtualHost _default_: 443>
    Имя_сервера www.yourdomain.com
    DocumentRoot / usr / local / apache2 / htdocs
    SSLEngine On
    ....
    ....
    </ VirtualHost>
  5. Сохраните и закройте файл, затем перезапустите HTTP-сервер следующим образом.

    $ sudo systemctl restart apache2 [Ubuntu / Debian]
    $ sudo systemctl перезапустить httpd [RHEL / CentOS]    

Замечания: В то время как <VirtualHost> является наиболее рекомендуемым решением, потому что это проще и безопаснее.

1

Другие решения

Это заставит перенаправить на https, добавьте это внизу

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

Удалить

RewriteCond %{HTTP:X-Forwarded-Proto} ^http$
RewriteRule (.*) https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector