Я настроил мой .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]
LoadModule rewrite_module modules / mod_rewrite.so
RewriteEngine On RewriteCond% {HTTPS}! = Вкл RewriteRule ^ /? (. *) Https: //% {SERVER_NAME} / $ 1 [R, L]
Теперь, когда посетитель набирает http://www.yourdomain.com, сервер автоматически перенаправляет HTTP на HTTPS https://www.yourdomain.com.
Второй — для безопасного порта 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>
$ sudo systemctl restart apache2 [Ubuntu / Debian] $ sudo systemctl перезапустить httpd [RHEL / CentOS]
Замечания: В то время как <VirtualHost>
является наиболее рекомендуемым решением, потому что это проще и безопаснее.
Это заставит перенаправить на 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]