调用之前生成的缓存文件的方法
示例网址:example.com/story/2022/07/18/2192547/
来自/home/example/2192547.txt
这很简单,但我需要它
如果找到 2192547.txt 使用
rewrite ^/story/([0-9]+)/([0-9]+)/([0-9]+)/([0-9]+)(.*)$ /home/example/$4.txt ;
否则使用
rewrite ^/story/([0-9]+)/([0-9]+)/([0-9]+)/([0-9]+)(.*)$ /post.php?id=$4&y=$1&m=$2&d=$3 ;
nginx 可以运行动态重写吗,有办法吗
答案1
这种方法应该有效:
location ~ /story/([0-9]+)/([0-9]+)/([0-9]+)/([0-9]+)/ {
try_files /home/example/$4.txt /post.php?id=$4&y=$1&m=$2&d=$3;
}
在这里,我们捕获行中的相关 URL 部分location
,然后在 中使用它们try_files
,我们告诉 nginx 在访问匹配的 URL 时要尝试哪些文件。nginx 按顺序尝试条目,因此如果.txt
未找到 ,则尝试post.php
。