我试图通过Nginx重写以下网址:
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
到目前为止我能找到的是如何包含单个变量。我有五个变量要通过,每个变量都以“/".
结尾答案 0 :(得分:3)
您可以通过$arg_name变量
访问nginx中的脚本参数name
使用脚本参数将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,......变量引用