我想阻止对项目目录中每个文件的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重写之外,这大部分都有效。我已经尝试将FilesMatch regexp更改为/(api|cron|status)(\.php)?$
,但它仍然向我发送了403响应。
任何人都可以向我解释我在这里做错了什么?我通常可以使用regexp,但这让我觉得Apache并不像其他人一样处理它们......
答案 0 :(得分:0)
Deny from all
<FilesMatch "^(api|cron|status)\.php$">
Order Allow,Deny
Allow from all
</FilesMatch>
我想确保你的.htaccess在根级别。