2017-04-12 11 views
0

プロジェクトフォルダ内のすべてのファイル(ルートフォルダ(サブフォルダではない)にあるPHPスクリプトを除く)へのHTTPアクセスをブロックします。ルート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> 

この大部分はapi.phpスクリプトに書き換えURLを除き、動作します。私は/(api|cron|status)(\.php)?$にFilesMatchの正規表現を変更しようとしましたが、それは私に403応答を投げつけ続けます。

誰でも私がここで間違ったことを説明することはできますか?私は正規表現で、通常はOKだけど、これは

答えて

0
Deny from all  

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

...私はApacheは皆のようにそれらを処理しません考えるようになったし、私はあなたの.htaccessがルートレベルにあることを確認してくださいね。

+0

ありがとうございました。私はそれが問題の原因となっている主要なスラッシュだと思います – 3rgo

関連する問題