2015-10-08 163 views
1

僅能訪問特定的路徑我在我的.htaccess文件如下:允許在.htaccess

<Files *.php> 
    Order Allow,Deny 
    Deny from all 
</Files> 

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

上面的代碼是限制只index.php文件的訪問。但是,問題是,如果在子目錄下有另一個index.php文件,那麼index.php文件也可以被執行。這不是我想要的。我想是這樣的:

<Files /home/user/public_html/index.php> 
    Order Allow,Deny 
    Allow from all 
</Files> 

<Files /home/user/public_html/admin/index.php> 
    Order Allow,Deny 
    Allow from all 
</Files> 

(我只是想執行2個的index.php文件)

但上述方法無效,因爲它會否認執行應該被允許的index.php(同樣,應該允許兩個,一個在網站的根目錄下,另一個在admin文件夾下)。

有沒有人有關於如何做到這一點的任何提示?

回答

1

使用mod_rewrite規則與正則表達式的支持,只允許/index.php OR /admin/index.php

RewriteEngine On 

RewriteRule ^(?!(admin/)?index\.php$).+?\.php$ - [F,NC] 

FilesFilesMatch不與路徑,但個別名工作。

+0

admin文件夾怎麼樣? – itoctopus

+1

好的檢查更新規則 – anubhava

+1

工作 - 謝謝! – itoctopus