2013-04-08 115 views
1

如何阻止用戶查看位於主域名文件夾中的網站?例如:主域是www.maindomain.com。當我在cPanel中爲另一個帳戶創建子域名時,它會創建它可以訪問的文件夾,例如某人輸入www.maindomain.com/subdomain。我想阻止某些文件夾,但留下其他人,因爲我有頁面在文件夾中:wwwmaindomain/contact-us。我怎樣才能做到這一點?希望這是足夠清晰的:)使用.htaccess阻止訪問網址

回答

1

在htaccess文件在你的文檔根目錄添加這些規則(maindomain.com):

RewriteEngine On 

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

這將返回「403禁止」如果你試圖訪問/subdomain1,/subdomain2/subdomain3來自maindomain.com主機。如果你不想返回一個403,你也可以重定向:

RewriteEngine On 

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

這重定向從maindomain.com主機文檔根目錄的子域的任何訪問。


編輯:

規則添加到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

感謝您的回覆。我已經嘗試了第一個,其中子域被阻止。它會阻止第一個(子域1),但不會阻止我在「|」之後寫入的其餘部分。任何想法爲什麼? – Roland 2013-04-08 11:41:51

+0

我現在看到它適用於子域(文件夾),裏面沒有.htaccess文件。某些子域具有.htaccess文件,阻止/重定向不起作用。下面是我在那些.htaccess文件有:RewriteEngine敘述上 的RewriteCond%{} REQUEST_FILENAME -d 的RewriteCond%{} REQUEST_FILENAME \ PHP -f 重寫規則^ $ $ 1.PHP – Roland 2013-04-08 12:19:37

+0

我刪除的.htaccess的內容。(*)。文件在子域中,上傳到服務器,然後粘貼回來,上傳和它的作品!我不知道這是爲什麼,這可能取決於哪個.htaccess最後上傳了?無論如何,它現在的作品,非常感謝:) – Roland 2013-04-08 12:55:09

1

嘗試在你的.htaccess重寫規則如下

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

這將重定向任何/子請求與禁止迴應碼你的index.php

0

非常有效的方式做,這是將一個空白的index.php文件,你不想顯示的文件夾,所以沒有需要惹htaccess的,或者你可以創建一個新的.htaccess與此代碼

deny from all 

保存此作爲perticular文件夾的.htaccess你不希望展現給pubblic,但是我perfer第一個選項。