我对nginx完全不熟悉,我想知道是否有人可以帮助我。
我正试图改变这一点:
domain.com/ngu/short.php?t=123
到
domain.com/t/123
如果有人能向我解释它是如何完成的,我将非常感激。我在网站周围寻找类似的情况,但我没有找到完全相同的东西,所以我遇到了一些困难。谢谢您的时间:)。
答案 0 :(得分:0)
以下位置块执行重写:
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;
}
}
说明:
答案 1 :(得分:0)
如果这对其他人有帮助,这就是我(实际上是朋友)最终做的事情:
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;
}
}
我不明白,但它确实有效。