2014-03-26 47 views
0

我需要一些幫助才能從Apache服務器獲取公共文件。我可以通過URL中的文件是這樣的:服務器上的文件的公共網址

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請求。

+1

哪個服務器?如果Apache然後使用mod_rewrite。這裏的生成器工具http://www.generateit.net/mod-rewrite/index.php –

+0

@HardikThaker Apache服務器。我的例子是一個GET請求,但在項目結束時,所有的請求都是POST請求。然後我從不允許GET請求。這是否仍然有效? – MSr

+0

太混亂了! –

回答

0

使用mod_rewrite模塊中.htacess文件

<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 

注意:上面的代碼將允許r un你的.php文件沒有擴展名。

現在您需要編寫一個腳本,它可以在getimage.php文件中捕獲$ _GET ['image']變量。所以,做一些有,

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

我無法達到我的目標。 – MSr

+0

@MSR:解釋! –

1

符號鏈接它 -

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