url без www та з https для Drupal 8

В інтернеті є безлічь варіантів реалізації переадрисації на безпечний протокол 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 , я кажуть двох зайців одним вистрілом. Якщо є питання задавайте їх в коментарях.

Долучитися до обговорення

2 коментарі

  1. Дякую , довго не міг налаштувати url без www, за допомогою Apache.
    Вибачте за офтоп:
    Яка краща панель для керування сайтами?

    1. Панелей для керування сайтами, не так вже й багато, краща з безкоштовних є VestaCP , вона водночас проста і надійна.

Залишити коментар