非常感谢您对为 nginx 映射块制作正确正则表达式的帮助。本质上,我需要在 URL 中匹配一个模式 [通常是一个单词:例如 course],但 URL 不能以 jpg、png、gif 等扩展名结尾
因此它应该匹配:
/课程/历史
它不应该匹配:
- /课程/历史.png
- /课程.jpg
- /课程/历史/学生/男孩.png
我根本无法让任何东西正常工作,感觉我离成功还很远
map $request_uri $redirect_uri_course {
~/course/+ !.(jpg|png|gif)$ http://www.example.com/courses;
}
请帮忙,谢谢
答案1
您可以使用正则表达式负面后视。
例如:
~^/course/[^?]*(?<!\.(jpg|png|gif))([?]|$)
或者,考虑到正则表达式是按顺序求值的,您可以使用两个语句,其中第一个语句求值为零。
例如:
~\.(jpg|png|gif)([?]|$) 0;
~^/course/ /some/path;