Как закрыть один из доменов системы для внешних пользователей

Материал из Umicms
Перейти к:навигация, поиск

Это можно сделать через файл .htaccess, прописав в нем, например, следующее:

RewriteEngine On
RewriteCond %{REMOTE_ADDR} !192.168.7.185
RewriteCond %{HTTP_HOST} www.domen.ru [NC]
RewriteRule (.+) http://domen_dlya_perenapravleniya.ru [L]

Пояснения: во второй строке указан ip, для которого нижеследуещее правило применяться не будет. В третьей - указываем домен, который хотим скрыть. В четвертой можно укакзать домен, на который мы будем перенаправлять пользователей, пытающихся открыть наш домен.

Если же у нас мультисайтовая система и нам нужно закрыть доступ только к определенным сайтам, то мы можем наоборот сначала всем запретить доступ, а затем указать те домены и IP-адреса с которых мы разрешаем открывать наши сайты:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_HOST} !^site1.ru
RewriteCond %{REMOTE_ADDR} !8.8.8.4

RewriteRule ^.*$ - [F,L]
</IfModule>

Пояснения: дописываем указанную конструкцию в конец файла .htaccess.
Строкой: RewriteCond %{HTTP_HOST} !^ - разрешаем доступ с указанного домена,
Строкой: RewriteCond %{REMOTE_ADDR} ! - разрешаем доступ с указанного IP-адреса.

Обратите внимание, что ваши кастомные инструкции не следует вносить в блок, обрамленный строками UMI_CMS_HTACCESS_BEGIN и UMI_CMS_HTACCESS_END, поскольку при обновлении системы он будет полностью заменён на новый.