0

我正在尝试重写以下 URL:

example.com/[name1]/[name2]

至:

example.com/[name2].htm?id=[name1]

我正在尝试这个重写规则:

rewrite ^/(\d+)/(.+)/ /$2?id=$1 last; 

但它似乎确实有效。有人可以帮我吗?谢谢!

4

1 回答 1

0

您在重写中忘记了 .htm

正如您正则表达式所假设的那样,name1 总是由所有数字组成是否正确?

更新:

location ~ ^/([A-Za-z0-9]+)/(.+)/$ {
  rewrite ^/([A-Za-z0-9]+)/(.+)/ /$2.htm?id=$1 last; 
}

基本上我们在这里做的是:

  • 我们与位置上的正则表达式匹配,这将选择我们要重写的 url
  • 在 location 块中,我们然后进行重写

(注意:我们需要重复正则表达式,因为 rewrite 指令会重置 $1 和 $2 反向引用的内容,如果我们在哪里做其他事情,我们可以直接在 location 块中使用它们)

于 2012-08-31T09:12:38.617 回答