サーバー上に、何らかの方法でファイル名に日付を含む 4 つのファイルがあるとします。
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を使用してリスト内の次のファイルを見つけることができますか?
例:
a.txt
b.txt
z.txt
に対する要求が与えられるとn.txt
、サーバーは を返しますb.txt
。