我想将Nginx
中的URL'https://www.example.com/knowledges/qa/123456'转换为'https://www.example.com/knowledges/qa.html?id=123456'。
我是Nginx的新手,可以尝试以下方法:
root /opt/statics;
location / {
index index.html;
}
location /knowledges/qa/ {
rewrite ([^\/]+)\/?$ /knowledges/qa.html?questionId=$1 last;
}
正则表达式/([^\/]+)\/?$/g
可以匹配url的最后一个片段的组(即123456)。
==编辑==
添加最后一个斜杠/knowledges/qa/
的效果。 (否则为死循环)
然后,出现新问题。在qa.html
中检索文档位置:
document.location.href // https://www.example.com/knowledges/qa/123456
不是https://www.example.com/knowledges/qa.html?id=123456
符合预期吗?
答案 0 :(得分:0)
我相信[^/]+
会匹配knowledges
而不是123456
。试试
rewrite ^/knowledges/qa/(\d+)$ /knowledges/qa.html?questionId=$1 last;