2017-01-02 133 views
1

我有多個網站託管在GoDaddy上。我有一個網站在根文件夾(/)和其他網站下的根目錄下的不同文件夾。如何防止從網站訪問網站

  • www.mydomain.com/
  • www.something.com文件夾/something

如果用戶鍵入URL www.mydomain.com/something它顯示的網站www.something.com的內容。

我想讓用戶重定向到www.mydomain.com如果他/她在www.mydomain.com之後鍵入任何子目錄名稱。

我在.htaccess文件中的根文件夾下面的:

RewriteEngine On 
RewriteCond %{ENV:REDIRECT_STATUS} 200 
RewriteRule^- [L] 

回答

1

這將在一個子目錄重定向什麼根,用於根.htaccess文件。

# Redirect anything in a sub-directory to root 
# (any URL with a slash in it, not including the first one) 
RewriteRule// [R=301,L] 

記住你所有的樣式表,圖像,JavaScript的等等,不能在子目錄,因爲他們將無法正常工作(他們會被重定向到根太)。這個網站的一切都必須以此爲根。

+0

同意。但這是要求的。我在答覆中已經指出了這一點。在添加新網站時,可能需要這種方式以保證未來的兼容性。 – SuperDuperApps

+1

只是爲了澄清任何人看這個,因爲評論被刪除說這裏有一個重定向循環,所以我刪除了我的迴應,這看起來很奇怪的背景。沒有一個循環。它可能是這樣的,但必須記住,在.htaccess文件中,第一個斜槓不在匹配的URL中,所以這隻會匹配子目錄。我個人認爲它看起來很酷!又好又幹又緊湊。 – SuperDuperApps

1

您可以在網站根目錄的.htaccess使用這樣的規則:

RewriteEngine On 

# redirect to/of something or somethingelse is accessed from mydomain.com 
RewriteCond %{HTTP_HOST} ^(www\.)?mydomain\.com$ [NC] 
RewriteRule ^(something|somethingelse)//[L,R=301,NC] 

RewriteCond %{ENV:REDIRECT_STATUS} 200 
RewriteRule^- [L] 
+0

問題是重定向「如果他們鍵入任何子目錄名稱」,所以這不會回答它。它只重定向指定的子目錄,而不是「任何」。 – SuperDuperApps

+0

這是故意的。否則,甚至諸如'mydomain.com/css /'或'mydomain.com/js /'的目錄也將被重定向到根目錄。 – anubhava

+0

它可能是故意的,但它不回答問題! – SuperDuperApps