假设服务器上有四个文件以某种方式在文件名中包含日期:
file_2014-01-20.txt
file_2014-01-03.txt
file_2014-01-02.txt
file_2014-01-01.txt
...并且服务器收到对不存在的日期文件的请求:
file_2014-01-10.txt
...有没有一种方法可以使用mod_rewrite
或其他一些.htaccess
代码来使它找到比请求的文件更旧的最新文件?例如,在这种情况下,它将返回file_2014-01-03.txt
,因为这是比(不存在的)请求文件更早的最新现有文件。
我知道我可以将所有 404 重定向到这样的特殊脚本:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+) getarchive.php?request=$1
...getarchive.php
将在哪里request
使用并找到并返回正确的文件。但是,出于多种原因,这对我来说不是一个好的解决方案,如果可能的话,我想完全.htaccess
不使用任何服务器端脚本来完成重定向。
编辑:
换句话说,给定一个不存在的文件名,Apache 可以用来查找列表中的下一个文件,当按reverse-alphabetally 排序时。
例子:
a.txt
b.txt
z.txt
给定一个请求n.txt
,服务器返回b.txt
。