nginx重写没有更改网址

use*_*593 24 rewrite nginx

我想在我的nginx服务器中使用重写功能.

当我尝试" http://www.example.com/1234 "时,我想重写" http://www.example.com/v.php?id=1234 "并希望获得" http:// www .example.com/1234 "在浏览器中.

这是nginx.conf文件

...
  location ~ /[0-9]+ {
      rewrite "/([0-9]+)" http://www.example.com/v.php?id=$1 break;
  }
...
Run Code Online (Sandbox Code Playgroud)

当我尝试" http://www.example.com/1234 "时

我想要 ...

url bar in browser : http://www.example.com/1234
real url : http://www.example.com/v.php?id=1234
Run Code Online (Sandbox Code Playgroud)

但我遇到了麻烦......

url bar in browser : http://www.example.com/v.php?id=1234
real url : http://www.example.com/v.php?id=1234
Run Code Online (Sandbox Code Playgroud)

Chu*_* Ma 38

参考:http://wiki.nginx.org/HttpRewriteModule#rewrite

如果替换字符串以http://开头,则客户端将被重定向,并且任何其他>重写指令都将终止.

所以删除http://部分它应该工作:

location ~ /[0-9]+ {
        rewrite "/([0-9]+)" /v.php?id=$1 break;
}
Run Code Online (Sandbox Code Playgroud)