如何解决拒绝访问文件夹内的文件但允许 REST API
我正在使用这个 .htaccess
来模拟一个充满文件的文件夹(一个简单的 REST API):
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule files/(.*)$ api.PHP?file=$1 [QSA,NC,L]
我们将此文件夹命名为 magicfolder
,我在其中使用此 .htaccess
文件。
事实上,只有 api.PHP
正在创建所请求的每个文件。
因此,像 mysite.com/magicfolder/files/image.jpg
这样的 url 被转换为 mysite.com/magicfolder/api.PHP?file=image.jpg
。
这很棒。但我还想添加一些规则,使用户无法访问 magicfolder
中存在的任何真实文件(日志甚至 api.PHP
)。
解决方法
根据您展示的样品,您可以尝试以下操作吗?请在测试您的 URL 之前清除浏览器缓存。确保您的 htaccess 规则文件存在于 magicfolder 文件夹中。
RewriteEngine On
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [F,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^files/(.*)/?$ api.php?file=$1 [QSA,NC,L]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。