Редирект домену з www на без www на Apache у CentOS 7
Пропозиція від 8host.com

Цей посібник покаже, як настроїти URL-адресу з префіксом www на URL без префікса на веб-сервері Apache у системі CentOS 7 (наприклад, з www.example.com на example.com).
Вимоги
Крім того, потрібно заздалегідь встановити Apache. Корисні статті щодо встановлення та налаштування цього веб-сервера можна знайти у спеціальному розділі даного сайту.
Також потрібно мати можливість додавати записи DNS.
Налаштування DNS-запису
Щоб налаштувати редирект із www.example.com на example.com (або навпаки), потрібно створити запис для кожного імені.
Відкрийте панель керування DNS.
Тепер сервер доступний за двома доменами: з префіксом www і без нього. Можна розпочинати налаштування редиректу.
Налаштування редиректу Apache
У системі CentOS 7 модуль Rewrite увімкнено за замовчуванням. Якщо ж у вашому випадку це з якоїсь причини не так, внесіть наступний рядок до розділу modules конфігурацій Apache (за промовчанням /etc/httpd/conf.modules.d/00-base.conf):
LoadModule rewrite_module modules/mod_rewrite.so
Увімкнення файлу .htaccess
Apache виконує редирект за допомогою файлу .htaccess. Для включення цієї функції потрібно зменшити права каталогу DocumentRoot.
Відкрийте конфігураційний файл Apache для редагування; у системі CentOS він знаходиться в /etc/httpd/conf/httpd.conf:
sudo vi /etc/httpd/conf/httpd.conf
Якщо сайт знаходиться у стандартному DocumentRoot (/var/www/html), знайдіть блок коду . У ньому змініть AllowOverride None на AllowOverride All:
Збережіть та закрийте файл.
Перезапустіть Apache, щоб оновити налаштування:
sudo systemctl restart httpd
ТеперApache налаштований для читання .htaccess, що знаходяться у будь-якому підкаталозі каталогу /var/www/html. Тепер додайте правила Rewrite.
Налаштування модуля Rewrite
Тепер можна налаштувати модуль Rewrite за допомогою увімкненого файлу .htaccess .
Перейдіть до DocumentRoot:
Потім відкрийте .htaccess для редагування:
sudo vi .htaccess
Звичайно, цей файл буде порожній (якщо він не був створений попередньо). Виберіть напрямок редиректу та дотримуйтесь відповідного розділу.
1: Редирект з www на без www
Щоб налаштувати редирект користувачів з домену з префіксом www на домен без нього, внесіть наступний код:
RewriteEngine On RewriteBase / RewriteCond % ^www\.(.*)$ [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
Збережіть та закрийте файл. Зміни негайно набудуть чинності. Зверніть увагу: під час використання HTTPS необхідно замінити http у рядку RewriteRule на https.
Потім використовуйте наступну команду curl, щоб переконатися, що редирект налаштований правильно (не забудьте вказати свій домен):
curl -I http://www.example.com
Output: HTTP/1.1 301 Moved Permanently Дата: Mon, 04 May 2015 16:04:56 GMT Server: Apache/2.4.6 (CentOS) Location: http://example .com/ Content-Type: text/html; charset=iso-8859-1
2: Редирект домену без www на домен з www
RewriteEngine On RewriteBase / RewriteCond % !^www\. [NC] RewriteRule ^(.*)$ http://www.%/$1 [R=301,L]
Збережіть та закрийте файл, після чого зміни будуть активовані. При використанні HTTPS не забудьте замінити http у рядку RewriteRule на https.
Потім використовуйте наступну команду curl, щоб переконатися, що редирект налаштований правильно (не забудьте вказати свій домен):
curl -Ihttp://example.com
На екрані з'явиться повідомлення, яке показує, що точкою редиректу є домен із префіксом:
Output: HTTP/1.1 301 Moved Permanently Дата: Mon, 04 May 2015 16:05:26 GMT Server: Apache/2.4.6 (CentOS) Location: http://www .example.com/ Content-Type: text/html; charset=iso-8859-1
Звичайно, необхідно також перевірити редирект у браузері.
Висновок
Як бачите, налаштування редиректу на сервері Apache є досить простим процесом. Тепер ваш сайт доступний за двома доменами: з префіксом і без нього.