Php 如何允许通过.htaccess设置从上载文件夹访问所有文件

Php 如何允许通过.htaccess设置从上载文件夹访问所有文件,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,我有根目录和文件 - api.php - .htaccess - uploads/ - uploads/abc.jpg - uploads/xyz.jpg 我正在为移动开发者编写RESTAPI,所以我已经成功地创建了下面列出的许多API api.php function register(){ //POST Method //I can access this API with URL http://example.com/register } function l

我有根目录和文件

 - api.php
 - .htaccess
 - uploads/
 - uploads/abc.jpg
 - uploads/xyz.jpg
我正在为移动开发者编写RESTAPI,所以我已经成功地创建了下面列出的许多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)中存储了什么用户配置文件映像,我无法使用

我发现这是由于我将
.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>

重新启动发动机
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}-s
重写规则^(.*)$api.php?rquest=$1[QSA,NC,L]
RewriteCond%{REQUEST_FILENAME}-d
重写规则^(.*)$api.php[QSA,NC,L]
重写cond%{REQUEST_FILENAME}-s
重写规则^(.*)$api.php[QSA,NC,L]

我不知道如何允许uploads文件夹使用.htaccess公开访问它。希望这能奏效。只需将这一行添加到每个重定向

RewriteCond%{REQUEST\u FILENAME}!\。(巴布亚新几内亚)$


重新启动发动机
重写条件%{REQUEST\u FILENAME}!\。(jpg | png)$
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}-s
重写规则^(.*)$api.php?rquest=$1[QSA,NC,L]
重写条件%{REQUEST\u FILENAME}!\。(jpg | png)$
RewriteCond%{REQUEST_FILENAME}-d
重写规则^(.*)$api.php[QSA,NC,L]
重写条件%{REQUEST\u FILENAME}!\。(jpg | png)$
重写cond%{REQUEST_FILENAME}-s
重写规则^(.*)$api.php[QSA,NC,L]

这是因为您正在将现有的目录重写为/api.php。尝试删除您的#2重写条件和规则。然后替换-是的-f以避免重写现有文件。感谢@starkeen,它工作了这是我想要的现在不工作,当我用我的代码图像URL替换你的代码时,它工作了,但API URL不工作,当我放置两者时,它就不工作了thing@AmanMaurya更新了我的帖子,现在你可以再次查看,如果你有任何问题,一定要告诉我
<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !\.(jpg|png)$
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-s
    RewriteRule ^(.*)$ api.php?rquest=$1 [QSA,NC,L]

    RewriteCond %{REQUEST_FILENAME} !\.(jpg|png)$
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^(.*)$ api.php [QSA,NC,L]

    RewriteCond %{REQUEST_FILENAME} !\.(jpg|png)$
    RewriteCond %{REQUEST_FILENAME} -s
    RewriteRule ^(.*)$ api.php [QSA,NC,L]   
</IfModule>