2

我正在尝试通过 Nginx 重写以下 URL:

http://www.domain.com/script.php?title=LONGSTRING&desc=LONGSTRING&file=LONGSTRING&id=THREELETTERS

变成这样的东西:

http://www.domain.com/script/LONGSTRING/LONGSTRING/LONGSTRING/LONGSTRING/THREELETTERS.html

到目前为止,我所能找到的只是如何包含一个变量。我有五个变量要传递,每个变量都以“/”结尾。

4

1 回答 1

5

您可以通过$arg_name变量访问namenginx 中的脚本参数

将带有脚本参数的 url 重写为对 seo 友好的 url,然后变成一个简单的重写,如下所示:

location /script/script.php {
  rewrite ^ /script/$arg_title/$arg_desc/$arg_file/$arg_id.html last;
}

相反,将 seo 友好的 url 重写为 php 脚本版本将是:

location /script/ {
  rewrite "^/script/([a-zA-Z]+)/([a-zA-Z]+)/([a-zA-Z]+)/([a-zA-Z]{3})$" 
          /script.php?title=$1&desc=$2&file=$3&id=$4 last;
}

基本上你有正则表达式捕获(每个圆括号对都是一个捕获),然后你可以用 $1, $2, ... 变量引用

于 2012-10-22T20:45:25.193 回答