2012-01-07 38 views
7

我想在用戶試圖訪問未經授權的目錄時顯示404(未找到)消息。我不想使用禁止頁面。我已經嘗試了下面的代碼,但它不起作用。.htaccess在未經授權的文件夾訪問時重定向到404(未找到)消息

RedirectMatch 404 ^/htaccess/.*$ 

上什麼可能會錯誤的任何想法?

+0

爲什麼你不想使用禁止頁面? – Dan 2012-01-07 01:22:44

+0

@丹我認爲使目錄不可見。 – rekire 2012-01-07 01:25:11

+0

@rekire你是正確的。我可以通過使用RedirectMatch 404使每個文件夾無敵,但我必須將htaccess放入每個文件夾。任何方式來影響所有的孩子目錄? – Leon 2012-01-07 02:51:53

回答

11

嘗試添加以下到您的htaccess文件

#if the URI starts with htaccess, return a 404 
RewriteRule ^htaccess/ - [R=404,L,NC] 

編輯

例如,系統/功能,系統/班,...

如果你有一個很多文件夾然後使用RewriteCond,因爲它比單個RewriteRule或多個RewriteRules中的多個文件夾更容易閱讀,其中複製404塊

RewriteCond %{REQUEST_URI} ^htaccess/ [NC,OR] 
RewriteCond %{REQUEST_URI} ^system/function/ [NC,OR] 
#just make sure the last rule does NOT have an OR 
RewriteCond %{REQUEST_URI} ^system/class/ [NC] 
RewriteRule . - [R=404,L,NC] 
+0

我得到了整個分支的文件夾,例如系統/功能,系統/類,如果用戶試圖通過URI訪問這些文件夾,只顯示他們的404頁面。我是否在每個文件夾中寫入htaccess? – Leon 2012-01-07 02:39:38

+0

@Leon見上面編輯 – 2012-01-07 03:02:16

+0

這是一個非常好的解決方案+1 – rekire 2012-01-07 09:05:24

0

R = 404不是有效的R值,它必須在300-399範圍內或將被忽略。最好簡單地重定向到一個不被其他規則阻止的不存在的URL,這會觸發你的errordocument。

相關問題