0

嗨,需要帮助才能将这条规则从 apache 重新发送到 nginx,整天都在尝试,但一无所获:

apache: ^pimage/small-([^/.]+)-([^/.]+).jpg$ /img_on_fly.php?iname=$1&iuid=$2&isize=small

尝试了所有在线转换器,尝试了我在网上找到的所有内容,但一无所获。我没有使用 nginx 的经验,但其他 15 条规则被一一重写,但都比这简单,所以如果有人可以的话。另外,我不确定 nginx conf 中这条规则的“位置”是什么?

4

2 回答 2

1

在 conf 文件的 server 元素中尝试以下操作

location ~ ^\/pimage\/small\-(?<iname>[^\/\.]+)\-(?<iuid>[^\/\.]+)\.jpg$ {
    try_files $uri /img_on_fly.php?iname=$iname&iuid=$iuid&isize=small
}

您的 conf 文件应如下所示:

server {
    ...
    ...
    ...
}

你可以把它改成

server {
    ...
    ...
    ...

    location ~ ^\/pimage\/small\-(?<iname>[^\/\.]+)\-(?<iuid>[^\/\.]+)\.jpg$ {
        try_files $uri /img_on_fly.php?iname=$iname&iuid=$iuid&isize=small
    }
}
于 2012-09-19T18:18:40.923 回答
0

逃避点怎么样,像这样:

rewrite ^pimage/small-([^/\.]+)-([^/\.]+).jpg$ /img_on_fly.php?iname=$1&iuid=$2&isize=small;

尝试并评论。

更新
也尝试转义破折号,如下所示:

rewrite ^pimage/small\-([^/\.]+)\-([^/\.]+).jpg$ /img_on_fly.php?iname=$1&iuid=$2&isize=small;

尝试之后,也尝试“不转义的点和转义的破折号”的变体。

于 2012-09-19T18:22:05.943 回答