服务器上文件的公共URL

时间:2014-03-26 14:09:08

标签: php .htaccess

我需要一些帮助来从Apache服务器获取公共文件。我可以通过这样的网址获取文件:

http://localhost:8888/MyProject/rest/api/getimage?image=IMG_20140325_175015_743612961.jpg

但是我希望通过这样的网址获取图片:

http://localhost:8888/MyProject/image/IMG_20140325_175015_743612961.jpg

我不知道该怎么做。图像路径:

http://localhost:8888/MyProject/rest/api/uploads/

P.S:我的例子是GET请求,但在项目结束时,所有请求都是POST请求。然后我永远不会允许GET请求。

2 个答案:

答案 0 :(得分:1)

符号链接 -

ln -s /path/to/webserver_root/MyProject/rest/api/uploads/* /path/to/webserver_root/MyProject/image/

答案 1 :(得分:0)

在.htacess文件中使用Mod_Rewrite模块

<IfModule mod_rewrite.c>    
    RewriteEngine on    
    Options +Indexes +FollowSymLinks +MultiViews
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}\.php -f
    RewriteRule .* $0.php

    RewriteRule ^MyProject/image/([^/]*)$ MyProject/rest/api/getimage?image=$1 [L]
</ifModule>

这将以此格式http://localhost:8888/MyProject/image/IMG_20140325_175015_743612961.jpg

重定向所有即将发出的请求

到这个

http://localhost:8888/MyProject/rest/api/getimage?image=IMG_20140325_175015_743612961.jpg

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule .* $0.php

注意:上面的代码允许在没有扩展名的情况下运行.php文件。

现在您需要编写一个脚本来捕获getimage.php文件中的$ _GET [&#39; image&#39;]变量。所以,在那里做点什么,

<?php
    if(isset($_GET['image'])) {
        $file = $_GET['image'];
        echo '<img src="http://localhost:8888/MyProject/rest/api/uploads/'.$file.'" />';
    }
    else {
        die('error');
    }
?>