我的域中有很多文件夾和子文件夾。我想避免直接訪問特定子文件夾中的文件類型html/jpg/gif/etc,但我希望它可以通過index.php頁面訪問。阻止直接訪問文件到子文件夾,但允許用htacess索引頁面
結構是這樣的:
- www.domain.com/folder1
- www.domain.com/folder2
- www.domain.com/folder2/subfolder1
- WWW。 domain.com/folder2/subfolder2
- www.domain.com/folder2/subfolder2/index.php
- www.domain.com/folder2/subfolder2/page1.html
- www.domain.com/folder2/subfolder2/page2.html
- www.domain.com/folder2/subfolder2/images /1.jpg
- www.domain.com/folder2/subfolder2/images/2.jpg
我tryed把page1.html,page2.html和圖像的所謂的新文件夾,文件夾裏面blocked_content:
- www.domain.com/folder2/subfolder2/index.php
- www.domain.com/folder2/subfolder2/ blocked_content /page1.html
和在blocked_content文件夾中添加了一個帶有deny from all
和Order Deny,Allow Deny from all
的.htaccess。它阻止了所有,甚至index.php無法訪問這裏面的文件。 index.php文件只有簡單的鏈接,<a href="blocked_content/page1.html">
Tryed上的.htaccess這個配置:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domain\.com [NC]
RewriteRule \.(swf|pdf|css|gif|png|jpg|html|htm)$ - [F]
並把它裏面subfolder2並沒有得到效果。
Tryed這個配置上的.htaccess:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domain\.com/folder2/subfolder2 [NC]
RewriteRule \.(swf|pdf|css|gif|png|jpg|html|htm)$ - [F]
我把它裏面subfolder2:沒有效果。我把它放在根目錄下,它阻止了所有其他文件夾。
我搜索了很多。我被困住了。我究竟做錯了什麼?把htacess放在錯誤的地方或者冒充添加東西?如果可能的話,我想通過.htacess來做到這一點。包含php會話到所有HTML文件將無法正常工作,因爲我無法更改文件名。
我是否正確理解您希望阻止所有請求,但只有'index.php',並且只有在index.php網站在瀏覽器中呈現並且瀏覽器請求內容時才返回其他資源?如果是這樣的話,它不能完成(至少不安全)。用戶可以隨時更改任何可能檢查的標題。 –
我找到了一種方法,以我想要的方式做我想做的事。找到一個工具來生成.htaccess文件,它的工作!但用戶如何更改標題Mikulas?哪種方式是安全的方式? – Leo
如果是這樣,請將解決方案作爲答案發布在Stack Overflow上或者關閉該問題。更改標題可以通過創建自定義請求來完成,例如'curl'(http://curl.haxx.se/)。 –