我可以使用 .htaccess 重定向到目录中的最新文件吗?

我可以使用 .htaccess 重定向到目录中的最新文件吗?

我想为以下情况创建 .htaccess 规则:

使用 .htaccess 可以实现这样的效果吗?我知道我可以使用 RewriteCond 检查文件是否存在,但不知道是否可以重定向到最新文件。

答案1

对于此问题,没有纯粹的 mod_rewrite 解决方案。最接近的解决方案可能是使用 指向RewriteMap始终返回 中最新文件的脚本。无论输入是什么,/images/some像这样的简单脚本将始终输出 中的最新文件:/images/some

#!/bin/bash

while read in
do
    find /path/to/images/some/ -maxdepth 1 -type f -exec ls -t1 {} + | head -1 | sed -e 's|/path/to/images/some/||g'
done

如果您在服务器或 vhost 配置中设置地图(不能在 htaccess 中声明地图):

RewriteMap latest prg:/path/to/script.sh

你可以像这样调用它:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/?images/some/(.*)$ /images/some/${latest:$1} [L,R=301]

当然,这不是很有效,你最好只编写一个 php 路由脚本并将所有内容引导到该脚本而不是地图上。

相关内容