は技術的にはあなたがのhttpd.confファイル内のRewriteRuleでのプログラムによるRewriteMap命令を使用することができ、.htaccessファイルからあなたの唯一のオプションです。
スクリプトは直接ファイルを処理できるため、内部リライトではロジックは完全にサーバー側になります。
.htaccessのルール
getLatest.phpのようなものである
RewriteEngine On
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^images/(.*)$ /getLatest.php [L]
:
<?php
$dir = "/srv/www/images";
$pattern = '/\.(jpg|jpeg|png|gif)$/';
$newstamp = 0;
$newname = "";
if ($handle = opendir($dir)) {
while (false !== ($fname = readdir($handle))) {
// Eliminate current directory, parent directory
if (preg_match('/^\.{1,2}$/',$fname)) continue;
// Eliminate all but the permitted file types
if (! preg_match($pattern,$fname)) continue;
$timedat = filemtime("$dir/$fname");
if ($timedat > $newstamp) {
$newstamp = $timedat;
$newname = $fname;
}
}
}
closedir ($handle);
$filepath="$dir/$newname";
$etag = md5_file($filepath);
header("Content-type: image/jpeg");
header('Content-Length: ' . filesize($filepath));
header("Accept-Ranges: bytes");
header("Last-Modified: ".gmdate("D, d M Y H:i:s", $newstamp)." GMT");
header("Etag: $etag");
readfile($filepath);
?>
注:コードが部分的に答えから借り:PHP: Get the Latest File Addition in a Directory
はあなたが作ることができません最新のファイルにリダイレクトしてRewriteCondを使用するスクリプト(PHPなど)? – mgarciaisaia
私はできると思いますが、私は可能な限り最速の解決策を探していて、PHPスクリプトを作成するというのは第2の再分割を導入することを意味します。私は各ディレクトリの最新のファイルへのシンボリックリンクを持つソリューションについて考えています –