Управление 301 редиректами в системе управления сайтом Hostcms имеет свои особенности. Попытаемся разобраться, как в этой cms посредством файла .htaccess реализовать перенаправление страниц сайта с префиксом www на «без www». Также рассмотрим и другие нюансы.
По умолчанию файл .htaccess в системе управления сайтами Hostcms (версий «Халява» 5 – 6) имеет следующий вид:
[box type=»shadow» ]Options +FollowSymlinksphp_flag magic_quotes_gpc off
php_flag magic_quotes_runtime off
php_flag register_globals off
</IfModule>
php_flag magic_quotes_gpc off
php_flag magic_quotes_runtime off
php_flag register_globals off
</IfModule>
DirectoryIndex index.php index.htm index.html
</IfModule>
RewriteEngine On
RewriteBase /RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php
</IfModule>
[/box]
Вставка классического кода перенаправления страниц сайта с префиксом www на «без www» результата не даст.
[box type=»shadow» ]RewriteCond %{HTTP_HOST} ^site\.ru$ [NC]RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L][/box]Для того, чтобы 301 перенаправление сработало, необходимо в оригинальном коде .htaccess после этих строк
[box type=»shadow» ]<IfModule mod_rewrite.c>RewriteEngine On
RewriteBase /
[/box]
добавить:
[box type=»shadow» ]RewriteCond %{HTTP_HOST} ^www.site.ru$RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L][/box]
В результате 301 редирект на сайте под управлением Hostcms будет работать как нужно.
Дополнительно стоит также настроить переадресацию index.php (html, home и т.п.). Делается это путём добавления следующего кода:
[box type=»shadow» ]# переадресуем запросы с index.php на корень сайтаRewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://%{HTTP_HOST}/ [R=301,L][/box]
Надеюсь, материал окажется для вас полезным.