我对 nginx 完全陌生,我想知道是否有人可以帮我一把。
我想要改变的是:
domain.com/ngu/short.php?t=123
进入
domain.com/t/123
如果有人可以向我解释它是如何完成的,我将非常感激。我在网站上查看了类似的情况,但我没有发现任何完全相同的东西,所以我遇到了一些困难。感谢您的时间 :)。
我对 nginx 完全陌生,我想知道是否有人可以帮我一把。
我想要改变的是:
domain.com/ngu/short.php?t=123
进入
domain.com/t/123
如果有人可以向我解释它是如何完成的,我将非常感激。我在网站上查看了类似的情况,但我没有发现任何完全相同的东西,所以我遇到了一些困难。感谢您的时间 :)。
万一这对其他人有帮助,这就是我(实际上是朋友)最终做的事情:
location / {
root /home/jim/www;
index index.html index.htm index.php;
if (!-f $request_filename) {
rewrite ^/t/(.+)$ /ngu/short.php?t=$1 last;
rewrite ^/u/(.+)$ /ngu/short.php?u=$1 last;
rewrite ^/s/ /ngu/short.php last;
break;
}
}
我不明白,但它有效。
以下位置块进行重写:
location ~ /ngu/short.php {
if ($args_t) {
rewrite ^ http://$host/t/$v? last;
}
}
但这需要您枚举所有可能的论点,如果您有很多潜在的论点,它可能更容易做到
location ~ /ngu/short.php {
if ($args ~ "([a-z]+)=(\d+)") {
set $p $1;
set $v $2;
rewrite ^ http://$host/$p/$v? last;
}
}
解释: