如何在nginx中写一个url重写?

mur*_*lai 24 nginx url-rewriting

我想要输入 http://www.myweb.com/like/1234456的人 会重定向到 http://www.myweb.com/item.php?itemid=1234456

我在配置中写了这样的东西,但它不起作用.

location = ^~/like/ {
                rewrite ^1234456  ../likeitem.php?item=1234456break;
                return 403;
        }
Run Code Online (Sandbox Code Playgroud)

这只是一个考验.我还没有使用$匹配.

我也重新启动我的ngnix服务器,但仍然..它没有重定向.

The*_*Kid 52

上面的代码不起作用,因为缺少$和使用return命令.

下面的代码适用于Nginx,包括版本0.8.54.

以下格式为:

  1. DesiredURL
  2. 实际网址
  3. Nginx_Rule

他们必须在里面 location / {}

http://example.com/notes/343
http://example.com/notes.php?id=343

rewrite ^/notes/(.*)$ /notes.php?id=$1 last;

http://example.com/users/BlackBenzKid
http://example.com/user.php?username=BlackBenzKid

rewrite ^/users/(.*)$ /user.php?username=$1 last;

http://example.com/top
http://example.com/top.php

rewrite ^/top?$ /top.php last;
Run Code Online (Sandbox Code Playgroud)

复杂而进一步

http://example.com/users/BlackBenzKid/gallery
http://example.com/user.php?username=BlackBenzKid&page=gallery

rewrite ^/users/(.*)/gallery$ /user.php?username=$1&page=gallery last;
Run Code Online (Sandbox Code Playgroud)

  • BlackBenzKid如何转换成`id = 1`?或者我错过了什么? (3认同)
  • @TheBlackBenzKid:它是如何连接的呢?谁将地图"users/BlackBenzKid/gallery"改为"user.php?username = 1&page = gallery"? (3认同)
  • 非常感谢这篇文章的作者.我一直在搜索谷歌如何在nginx上做一个这么简单的事情一个小时,发现只有一个约一米长的文章谈论初学者无法理解的事情.最后我在SO上找到了这个答案,这个答案很明确,并且很好地介绍了我自己尝试使用nginx url重写功能.很大的感谢男人!!! (3认同)
  • @MadaraUchiha我的朋友这只是一个使用我的SEO变量和查询字符串组合的例子,它只是在手边获得重点.问候 (2认同)
  • @SecondRikudo我有一个排队等待审核的编辑应该解释,我认为这些例子中有两个错误. (2认同)