Пренасочване на домейн от 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 е активиран по подразбиране. Ако по някаква причина това не е така във вашия случай, добавете следния ред към секцията модули на конфигурациите на 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 рестартирайте httpd
СегаApache е конфигуриран да чете .htaccess, намиращ се във всяка поддиректория на директорията /var/www/html. Сега добавете правилата за пренаписване.
Конфигуриране на модула за презаписване
Вече можете да конфигурирате модула Rewrite с включения .htaccess файл.
Промяна на DocumentRoot:
След това отворете .htaccess за редактиране:
sudo vi .htaccess
Разбира се, този файл ще бъде празен (освен ако не е бил създаден преди това). Изберете посока за пренасочване и следвайте съответния раздел.
1: Пренасочване на www към не-www
За да пренасочите потребителите от домейн с префикс www към домейн без него, въведете следния код:
RewriteEngine на RewriteBase / RewriteCond % ^www\.(.*)$ [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
Запазете и затворете файла. Промените ще влязат в сила незабавно. Имайте предвид, че когато използвате HTTPS, трябва да замените http в RewriteRule с https.
След това използвайте следната команда curl, за да се уверите, че пренасочването е настроено правилно (не забравяйте да включите вашия домейн):
curl -I http://www.example.com
Изход: HTTP/1.1 301 Преместен за постоянно Дата: Mon, 04 май 2015 г. 16:04:56 GMT Сървър: Apache/2.4.6 (CentOS) Местоположение: http://example.com/ Content-Type: text/html; charset=iso-8859-1
2: Пренасочване на домейн без www към домейн с www
RewriteEngine на RewriteBase / RewriteCond % !^www\. [NC] RewriteRule ^(.*)$ http://www.%/$1 [R=301,L]
Запазете и затворете файла, след което промените ще бъдат активирани. Когато използвате HTTPS, не забравяйте да замените http в реда RewriteRule с https.
След това използвайте следната команда curl, за да се уверите, че пренасочването е настроено правилно (не забравяйте да включите вашия домейн):
къдря -Ihttp://example.com
На екрана ще се появи съобщение, което показва, че точката за пренасочване е домейнът с префикс:
Изход: HTTP/1.1 301 Преместен за постоянно Дата: Mon, 04 май 2015 г. 16:05:26 GMT Сървър: Apache/2.4.6 (CentOS) Местоположение: http://www.example.com/ Content-Type: text/html; charset=iso-8859-1
Разбира се, трябва да проверите и пренасочването в браузъра.
Заключение
Както можете да видите, настройването на пренасочване на сървъра на Apache е доста прост процес. Сега вашият сайт е достъпен в два домейна: със и без префикс.