2017-04-12 46 views
0

我想阻止對我的項目目錄中的每個文件的HTTP訪問,除了位於根文件夾(不是子文件夾)中的PHP腳本。我怎麼能阻止除根PHP腳本以外的所有內容

我現在的.htaccess文件看起來是這樣的:

# Disable Directory Listings in this Directory and Subdirectories 
# This will hide the files from the public unless they know direct URLs 
Options -Indexes 

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^api/(.*)$ api.php/$1 [QSA,L] 
</IfModule> 

# Deny all files from being accessed with Apache 
Order Deny,Allow 
Deny from all 

# Allow specific PHP files at root 
<FilesMatch "/(api|cron|status)\.php$"> 
    Order Allow,Deny 
    Allow from all 
</FilesMatch> 

這主要工作,除了URL重寫的api.php腳本。我試過將FilesMatch的正則表達式更改爲/(api|cron|status)(\.php)?$,但它一直在拋出403響應。

任何人都可以向我解釋我在這裏做錯了什麼?我通常用正則表達式確定,但是這已經讓我思考的Apache不處理他們和其他人一樣...

回答

0
Deny from all  

<FilesMatch "^(api|cron|status)\.php$"> 
Order Allow,Deny 
Allow from all 
</FilesMatch> 

我想確保你的.htaccess是根目錄下。

+0

謝謝你做到了。我想這是導致問題的主要斜線 – 3rgo

相關問題