2012-01-10 77 views
12

我想要阻止訪問「sub/folder/index.php」,但不能訪問其他地方的「index.php」。.htaccess在子文件夾中拒絕文件

<Files index.php> 
    Order allow,deny 
    Deny from all 
</Files> 

工作但阻止所有「index.php」文件。

<Files sub/folder/index.php> 
    Order allow,deny 
    Deny from all 
</Files> 

不起作用。我需要使用<Directory>嗎?

我不想創建在子.htaccess文件/文件夾

我沒有獲得的httpd.conf

我不想阻止一切都在分/目錄

如果它是那麼容易的,我就不會問;)

回答

23

我覺得simpliest規則是:

RedirectMatch 403 ^.*/sub/folder/index\.php$ 

RedirectMatch是mod_alias中模塊,你肯定有。這並不意味着mod_rewrite引擎。這裏我們只是告訴Apache,任何對sub/folder/index.php的訪問都會產生一個「403禁止」的答案。

你可以把它放在httpd.conf或根.htaccess中(但是真的考慮刪除所有的.htaccess,這很糟糕,很慢,很遺憾你沒有訪問真實的配置文件)。

+0

這個工程!顯然'RedirectMatch'與'RewriteRule'分開處理 – Halcyon 2012-01-10 16:41:50

+0

如果你想禁止訪問每個子文件夾中的每個文件,請執行以下操作:RedirectMatch 403 ^。*/*/* \ * * – 2012-09-12 08:59:00

+0

Miha,我認爲最好的規則所有文件最後都只是/ * $,這樣,沒有點的文件也適用於此規則 – Arruda 2013-07-24 00:16:52

1

如何創建.htaccess文件包含您要保護的文件的特定文件夾中?

編輯:

要小心,這其實並不在一個簡單的.htaccess文件時,請參閱下面的評論。這隻會在apache.conf文件中起作用。

這應招爲你沒有其他 .htaccess文件:

<Directory sub/folder> 
    <Files index.php> 
    Order allow,deny 
    Deny from all 
    </Files> 
</Directory> 
+0

我不想這樣做,當然,因爲這個問題的範圍之外的原因。 – Halcyon 2012-01-10 10:53:37

+1

然後是的,您需要應用directoy規則。我將編輯答案:) – bardiir 2012-01-10 10:57:42

+2

哦,只是偶然發現,這隻適用於apache.conf文件而不是.htaccess文件本身...請參閱http://httpd.apache.org/docs/1.3/howto/ htaccess.html – bardiir 2012-01-10 11:01:10

2

我嘗試在子/文件夾中創建另一個的.htaccess /阻止訪問到的index.php。

「如果將.htaccess文件放在子文件夾中,其指令將覆蓋您在站點主文件夾中的指令。」

這個頁面有進一步的信息:http://www.besthostratings.com/articles/htaccess.html

+2

如果這是您第一次聽說過'.htacess'文件的概念,那麼您鏈接的文章就很有用。這裏沒有那麼有用。 – Halcyon 2012-01-10 16:47:27

+0

你當時的問題並不是說你是否用htaccess獲得了所有的可能性,這就是爲什麼我給了你這樣一個鏈接。 – AKFourSeven 2012-01-10 17:38:40

0

只能在<文件>部分,而不是路徑使用的文件名。

我可以看到三個選項;

  • 將.htaccess文件放入與文件相同的文件夾中。
  • 使用< Directory>指令和< Files>指令將配置置於apache.conf中。 <目錄>在.htaccess文件中不起作用,只有apache.conf
  • 使用mod_rewrite a'la創建重寫規則;

-

RewriteEngine on 
RewriteRule ^sub/folder/index.php$ http://yoursite/index.locked 

將在文件給出一個404,如果你想拒絕的權限,建立在尖保護的文件位置的讀取。

+0

第二個也是不能接受的;) – Halcyon 2012-01-10 11:00:39

+1

好的,添加了第三個:) – 2012-01-10 11:40:35

+0

我玩過這個,它可以工作,只有子目錄包含一個.htaccess文件以及RewrieRules。所以我需要''RewriteOptions繼承'和一個'RewriteBase'的父母代碼,但我無法提供,因爲我的環境是動態的。我總是發現它是多麼的完美無暇.htaccess是當你有模塊化結構時。 – Halcyon 2012-01-10 15:36:37

相關問題