【发布时间】:2017-04-01 15:47:14
【问题描述】:
我有文件的根目录
- api.php
- .htaccess
- uploads/
- uploads/abc.jpg
- uploads/xyz.jpg
我正在为移动开发者编写 REST API,所以我已经成功创建了下面列出的 API 数量
api.php
function register(){
//POST Method
//I can access this API with URL http://example.com/register
}
function login(){
//POST Method
//I can access this API with URL http://example.com/login
}
function user(){
//GET Method
//I can access this API with URL http://example.com/user
}
现在的问题是上传目录中存储的用户个人资料图像,即(ab.jpg,xyz.jpg),我无法使用http://example.com/uploads/abc.jpg 访问它
我发现这是由于我已将.htaccess 文件放在根级目录中,该文件中的代码是:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^(.*)$ api.php?rquest=$1 [QSA,NC,L]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*)$ api.php [QSA,NC,L]
RewriteCond %{REQUEST_FILENAME} -s
RewriteRule ^(.*)$ api.php [QSA,NC,L]
</IfModule>
我不知道如何允许上传文件夹使用 .htaccess 公开访问它
【问题讨论】:
-
这是因为您将现有目录重写为 /api.php 。尝试删除您的 #2 RewriteCond 和规则。
-
并将 !-s 替换为 !-f 以避免重写现有文件。
-
谢谢@starkeen,这就是我想要的
标签: php apache .htaccess mod-rewrite