2013-04-08 4 views
1

Как заблокировать пользователей от просмотра сайтов, находящихся в папке основного домена? Например: основной домен - www.maindomain.com. Когда я создаю субдомен для другой учетной записи в cPanel, он создает папку, в которой он доступен, если кто-то печатает, например, www.maindomain.com/subdomain. Я хотел бы заблокировать определенные папки, но оставляю других, так как у меня есть страницы в папке: wwwmaindomain/contact-us. Как я могу это сделать? Надеюсь, что это достаточно ясно :)Блокировать доступ к URL-адресу с .htaccess

ответ

1

Добавьте эти правила в файле Htaccess в корневом каталоге (для maindomain.com):

RewriteEngine On 

RewriteCond %{HTTP_HOST} ^(www\.)?maindomain.com$ [NC] 
RewriteRule ^(subdomain1|subdomain2|subdomain3) - [L,F] 

Это вернет «403 Forbidden», если вы пытаетесь получить доступ /subdomain1, /subdomain2, или /subdomain3 от хозяина maindomain.com. Если вы не хотите, чтобы вернуть 403, вы также можете переадресовать:

RewriteEngine On 

RewriteCond %{HTTP_HOST} ^(www\.)?maindomain.com$ [NC] 
RewriteRule ^(subdomain1|subdomain2|subdomain3)/[L,R=301] 

Это перенаправляет любой доступ к поддоменам от maindomain.com хоста к корню документа.


EDIT:

Правила добавить в начало HTAccess файлов, найденных в папках субдомена:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(www\.)?maindomain.com$ [NC] 
RewriteRule^- [L,F] 

или

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(www\.)?maindomain.com$ [NC] 
RewriteRule ^/[L,R=301] 
+0

Спасибо за ваш ответ. Я попробовал первый, где субдомены заблокированы. Он блокирует первый (subdomain1), но не блокирует остальные из них, которые я написал после «|». Любые идеи почему? – Roland

+0

Теперь я вижу, что он работает для поддомена (папки), где в нем нет файла .htaccess. В некоторых поддоменах файл .htaccess и блокировка/перенаправление не работают. Вот что я получил в этих файлах .htaccess: RewriteEngine на RewriteCond% {REQUEST_FILENAME} -d RewriteCond% {REQUEST_FILENAME} \ PHP -f RewriteRule^$ $ 1.php – Roland

+0

Я удалил содержимое .htaccess. (*). файл в субдомене, загруженный на сервер, затем вставляемый обратно, загруженный, и он работает! Я не знаю, почему так, вероятно, это зависит от того, какой .htaccess был загружен последним? Во всяком случае, он работает сейчас, спасибо большое :) – Roland

1

Попробуйте следующие RewriteRule в вашем .htaccess

RewriteEngine On 
RewriteRule ^subdomain/(.*) /index.php [R=403,NC,L] 

Это будет перенаправлять любой запрос/поддомена на ваш index.php с кодом ответа запрещено

0

очень эффективный способ сделать это, чтобы поместить пустой файл index.php папки вы не хотите, чтобы показать, так что нет нужно возиться с Htaccess, или вы можете просто создать новый .htaccess с этим кодом

deny from all 

сохранить это как .htaccess этой perticular папки вы не хотите, чтобы показать pubblic, однако, я предпочитаю первый вариант.

Смежные вопросы