एक CGI स्क्रिप्ट के लिए नए सिरे से लिखना एक .htaccess से अपने ही एकमात्र विकल्प, तकनीकी रूप से आप एक httpd.conf फ़ाइल में एक फिर से लिखना के साथ एक programatic RewriteMap इस्तेमाल कर सकते हैं है।
स्क्रिप्ट सीधे फ़ाइल की सेवा कर सकती है, इसलिए एक आंतरिक पुनर्लेख के साथ तर्क पूरी तरह से सर्वर पक्ष हो सकता है उदा।
.htaccess नियम
RewriteEngine On
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^images/(.*)$ /getLatest.php [L]
getLatest.php कहां है कुछ की तरह:
<?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
आप नहीं कर सकते एक स्क्रिप्ट (कहें, पीएचपी) जो नवीनतम फाइल पर रीडायरेक्ट करती है और वहां जाने के लिए रिवाइटकंड का उपयोग करती है? – mgarciaisaia
मुझे लगता है कि मैं कर सकता हूं, लेकिन मैं सबसे तेज़ समाधान की तलाश कर रहा हूं और PHP स्क्रिप्ट बनाने का मतलब दूसरे पुनर्निर्देशन को पेश करना है। मैं प्रत्येक निर्देशिका में नवीनतम फ़ाइल में सिम्लिंक के साथ समाधान के बारे में सोच रहा हूं –