我正在創建一個圖像託管服務,我想縮短名稱以便它沒有擴展名,並且這些文件位於我的服務器的「根」目錄中。我已經到了可以加載任何PNG文件的地步,它會顯示圖像,但是說,文件是swf或jpg,它仍會嘗試打開PNG。 現在,這是我目前所擁有的。如果文件名上有擴展名,文件名以gif,jpg,png或swf結尾,則會從/ img /目錄加載文件。如果不是,它會打開,並忽略原始解析文件形式存在 的.htaccess查找特定文件名的擴展名
RewriteEngine on
RewriteCond %{REQUEST_URI} !/img/.*
RewriteRule ^(.*\.(gif|jpg|png|swf))$ img/$1 [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ media.php?i=$1 [NC,L]
忽略原始
<?php
//Media.PHP
if(!isset($_REQUEST['i'])){
die("No media selected ");
}
$filename = $_REQUEST['i'];
if(file_exists('img/'.$filename .'.png')){
$header = "image/png";
$ext = ".png";
}
elseif(file_exists('img/'.$filename .'.jpg')){
$header = "image/jpg";
$ext = ".jpg";
}
elseif(file_exists('img/'.$filename.'.jpeg')){
$header = "image/jpg";
$ext = ".jpeg";
}
elseif(file_exists('img/'.$filename .'.gif')){
$header == "image/gif";
$ext = ".gif";
}
elseif(file_exists('img/'.$filename .'.swf')){
$header == "application/x-shockwave-flash";
$ext = ".swf";
}
else die("404 File not found");
header("Content-Type: $header");
@readfile('img/'.$filename."$ext");
現在,這個偉大工程與圖像(PNG,GIF,JPG,JPEG )但我無法使它與.swf文件正常工作。它只是下載它們。因此,在這種情況下,我可以從mydomain.com/MYSWF.swf打開文件,但不打開mydomain.com/MYSWF,因爲它使用較短的鏈接下載文件。