В інтернеті є безлічь варіантів реалізації переадрисації на безпечний протокол ssl (https) для Drupal 8 , але 80% з них не підходили мені, по різним причинам, одні зовсім не працювали інші створювали циклічну переадресацію, і я вирішив підти почитати документацію, і як виявилося все дуже просто, як кажуть кращий код це короткий код, от так і вийшло, приступимо.
Переадресація url з http на https для Drupal 8
В корені сайту є файл .htaccess , відриваємо його за допомогою notepad+ і шукаємо код:
RewriteRule ^ - [E=protossl]
RewriteCond %{HTTPS} on
RewriteRule ^ - [E=protossl:s]
Закоментовуємо його, ставимо в початку кожного рядка символ # або видаляємо ці рядки коду, і вставляємо після нього:
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Збережіть файл, очистіть куки браузера, і перезавантажити сторінку за допомогою ctr+F5 , якщо у вас chrome, готово. Зверніть увагу що код не моє регулярного виразу, що зменшує навантаження на центральній процесор.
Видалення префіксу www з адреси для Drupal 8
Багато вебмайстрів не беруть до уваги, що коли немає переадресації з www.example.com на examle.com то сайт буде доступний за двома адресами, а це означає що для пошукових систем це два різні сайти, от і виходить що у вас буде продубльований контент, а це може призвести до фільтрів і заниження позицій у пошуковій видачі. Давайте зробимо переадресацію з www.
Відкриваємо файл .htaccess в редакторі notepad+ знаходимо рядки з кодом:
# To redirect all users to access the site WITHOUT the 'www.' prefix,
# (http://www.example.com/foo will be redirected to http://example.com/foo)
# uncomment the following:
# RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
# RewriteRule ^ http%{ENV:protossl}://%1%{REQUEST_URI} [L,R=301]
Та розкоментовуємо два рядки:
# To redirect all users to access the site WITHOUT the 'www.' prefix,
# (http://www.example.com/foo will be redirected to http://example.com/foo)
# uncomment the following:
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http%{ENV:protossl}://%1%{REQUEST_URI} [L,R=301]
Тепер в нас на сайті є протокол https і немає префіксу www , я кажуть двох зайців одним вистрілом. Якщо є питання задавайте їх в коментарях.