NGINX 重写条件问题
NGINX rewrite condition issues
我的 nginx 服务器上有一个位置,例如 /folder/。在该文件夹中有 .jpg 文件和一个 .php 脚本。
我要实现的目标如下:
当用户访问一个url像:http://mywebsite.com/folder/10-11nginx会搜索10-11文件,10-11.png文件,10-11.jpg文件并显示它(如果文件在服务器上)。此部分工作正常。
现在,当用户访问同一个 url 时,如果该文件不存在,我希望将用户重定向到该 php 脚本。
Bellow 是 nginx 配置中有效的部分。该文件夹中的所有图像文件都像 10-10、21-19、90-20 等(2 位数 - 2 位数)。
location /app/comics/lqthumb/ {
try_files $uri /$uri.png /$uri.jpg;
}
另一个 nginx 部分应该是这样的:
location /app/comics/lqthumb/ {
rewrite ^/app/comics/lqthumb/(.*?)-(.*?)$ /app/comics/lqthumb/thumbgen.php?chapter=&page= permanent;
}
想法是把这条规则结合起来。我怎样才能做一个 if else 语句或类似的东西?我尝试了几种组合,阅读了很多论坛帖子甚至是这里的答案,但我无法使它起作用。
如果您有任何问题,请告诉我!
您可以使用命名位置将它们结合起来。 try_files
的最后一个元素可以调用默认操作以输入命名位置以处理重写。
root /path/to/root;
location /app/comics/lqthumb {
try_files $uri $uri.png $uri.jpg @thumbgen;
}
location @thumbgen {
rewrite ^/app/comics/lqthumb/(.*?)-(.*?)$ /app/comics/lqthumb/thumbgen.php?chapter=&page=;
}
location ~ \.php$ { ... }
我已经删除了你放在 $uri
之前的虚假 /
。我假设您有一个调用 PHP 解释器的位置,否则,您可以将这些指令放入指定位置。我不确定您是否打算将重定向设为 permanent
。没有标志,内部重定向对用户透明地执行。
我的 nginx 服务器上有一个位置,例如 /folder/。在该文件夹中有 .jpg 文件和一个 .php 脚本。
我要实现的目标如下:
当用户访问一个url像:http://mywebsite.com/folder/10-11nginx会搜索10-11文件,10-11.png文件,10-11.jpg文件并显示它(如果文件在服务器上)。此部分工作正常。
现在,当用户访问同一个 url 时,如果该文件不存在,我希望将用户重定向到该 php 脚本。
Bellow 是 nginx 配置中有效的部分。该文件夹中的所有图像文件都像 10-10、21-19、90-20 等(2 位数 - 2 位数)。
location /app/comics/lqthumb/ {
try_files $uri /$uri.png /$uri.jpg;
}
另一个 nginx 部分应该是这样的:
location /app/comics/lqthumb/ {
rewrite ^/app/comics/lqthumb/(.*?)-(.*?)$ /app/comics/lqthumb/thumbgen.php?chapter=&page= permanent;
}
想法是把这条规则结合起来。我怎样才能做一个 if else 语句或类似的东西?我尝试了几种组合,阅读了很多论坛帖子甚至是这里的答案,但我无法使它起作用。
如果您有任何问题,请告诉我!
您可以使用命名位置将它们结合起来。 try_files
的最后一个元素可以调用默认操作以输入命名位置以处理重写。
root /path/to/root;
location /app/comics/lqthumb {
try_files $uri $uri.png $uri.jpg @thumbgen;
}
location @thumbgen {
rewrite ^/app/comics/lqthumb/(.*?)-(.*?)$ /app/comics/lqthumb/thumbgen.php?chapter=&page=;
}
location ~ \.php$ { ... }
我已经删除了你放在 $uri
之前的虚假 /
。我假设您有一个调用 PHP 解释器的位置,否则,您可以将这些指令放入指定位置。我不确定您是否打算将重定向设为 permanent
。没有标志,内部重定向对用户透明地执行。