nginx execute.php as.gif文件重写规则
这对我来说是一个很大的挑战:nginx execute.php as.gif文件重写规则,php,nginx,url-rewriting,Php,Nginx,Url Rewriting,这对我来说是一个很大的挑战: mysite.com/cookie/image.php?perma=perma1 就这样, mysite.com/cookie/perma1.gif 或 作为 因此,每当我在后台请求perma1.gif或perma2.gif时,nginx都会运行 image.php?perma=perma1 及 因此,对于您的问题,nginx server.conf的正确规则应该是: location ~* ^/cookie/(.*)\.(gif)$ { try_fi
mysite.com/cookie/image.php?perma=perma1
就这样,
mysite.com/cookie/perma1.gif
或
作为
因此,每当我在后台请求perma1.gif或perma2.gif
时,nginx都会运行
image.php?perma=perma1
及
因此,对于您的问题,nginx server.conf的正确规则应该是:
location ~* ^/cookie/(.*)\.(gif)$ {
try_files $uri $uri/ /cookie/image.php?perma=$1;
}
这条规则意味着:
。。。这应该可以解决您的问题。因此,对于您的问题,nginx server.conf的正确规则应该是:
location ~* ^/cookie/(.*)\.(gif)$ {
try_files $uri $uri/ /cookie/image.php?perma=$1;
}
这条规则意味着:
try_files
是完全不必要的,不仅@MatWer的回答总是试图检查是否存在,例如/cookie/perma1.gif
,而且还检查目录/cookie/perma1.gif/
(这是两个不必要的系统stat
调用)
最有效的方法是在服务器
上下文(任何位置
之外)中进行简单的重写:
因此,每当我在后台请求perma1.gif或perma2.gif时,nginx都会运行
这意味着try_files
是完全不必要的,不仅@MatWer的回答总是试图检查是否存在,例如/cookie/perma1.gif
,而且还检查目录/cookie/perma1.gif/
(这是两个不必要的系统stat
调用)
最有效的方法是在服务器
上下文(任何位置
之外)中进行简单的重写:
非常感谢。这似乎是一个更简洁的解决方案。没错,它还检查目录的存在!但是在我的用例中,在将输入传递到php之前,检查是否有ressource是非常重要的。所以,有了try_文件的解决方案,您就不想陷入重写问题的错误分析了。谢谢。这似乎是一个更简洁的解决方案。没错,它还检查目录的存在!但是在我的用例中,在将输入传递到php之前,检查是否有ressource是非常重要的。因此,有了try_文件的解决方案,您就不想陷入重写问题的错误分析中。
image.php?perma=perma2
location ~* ^/cookie/(.*)\.(gif)$ {
try_files $uri $uri/ /cookie/image.php?perma=$1;
}
rewrite ^/cookie/(.*)\.gif$ /cookie/image.php?perma=$1 last;