nginx从apache 1规则重写

时间:2012-09-19 18:10:06

标签: nginx

您需要帮助才能将此规则从apache重新命名为nginx,整天都在尝试但是没有:

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

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

2 个答案:

答案 0 :(得分:1)

在conf文件的服务器元素中尝试以下内容

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
    }
}

答案 1 :(得分: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;

尝试之后,尝试“点未转义和破折号逃脱”的变化。