Hir*_*ram 2 regex seo rewrite nginx
我正在尝试通过 Nginx 重写以下 URL:
http://www.domain.com/script.php?title=LONGSTRING&desc=LONGSTRING&file=LONGSTRING&id=THREELETTERS
Run Code Online (Sandbox Code Playgroud)
变成这样:
http://www.domain.com/script/LONGSTRING/LONGSTRING/LONGSTRING/LONGSTRING/THREELETTERS.html
Run Code Online (Sandbox Code Playgroud)
到目前为止我能找到的只是如何包含一个变量。我有五个变量要传递,每个变量都以“/”结尾。
您可以name通过$arg_name变量访问nginx 中的脚本参数
将带有脚本参数的 url 重写为一个 seo 友好的 url 然后变成一个简单的重写,如下所示:
location /script/script.php {
rewrite ^ /script/$arg_title/$arg_desc/$arg_file/$arg_id.html last;
}
Run Code Online (Sandbox Code Playgroud)
相反,将 seo-friendly 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;
}
Run Code Online (Sandbox Code Playgroud)
基本上你有正则表达式捕获(每个圆括号对都是一个捕获),然后你可以用 $1, $2, ... 变量引用