gpt4 book ai didi

.htaccess - mod_rewrite RewriteCond 基于 Last-modified? (.htaccess)

转载 作者:行者123 更新时间:2023-12-04 14:21:10 25 4
gpt4 key购买 nike

我知道我们可以轻松地将 RewriteCond 基于任何 http 请求 标题。但是我们可以检查(一些)回复 将要发送的 header ?特别是 最后修改一?

我只想在 Last-modified 日期超过 30 分钟时重写 url,并且我试图避免每次请求该目录中的文件时将该检查委派给 php 文件的开销。

提前致谢!

最佳答案

不,那是不可能的。但是您可以使用 rewrite map从一个开销比 PHP 少的程序中获取该信息,也许是一个 shell 脚本。

这是一个示例 bash 脚本:

#!/usr/bin/env bash
while read line; do
max_age=${line%%:*}
filename=${line#*:}
if [[ -f $filename ]]; then
lm=$(stat -f %m "$filename")
if [[ $(date +%s)-$lm -le $max_age ]]; then
echo yes
else
echo no
fi
else
echo no
fi
done

重写映射的声明需要放在您的服务器或虚拟主机配置文件中,因为程序只启动一次,然后等待输入:
RewriteMap last-modified-within prg:/absolute/file/system/path/to/last-modified-within.sh

然后您可以像这样使用该重写映射(.htaccess 示例):
RewriteCond %{last-modified-within:30:%{REQUEST_FILENAME}} =yes
RewriteRule ^foo/bar$ - [L]
RewriteRule ^foo/bar$ script.php [L]

关于.htaccess - mod_rewrite RewriteCond 基于 Last-modified? (.htaccess),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1318113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com