我希望我的重写规则只捕获第一个匹配并忽略其余的
当前行为
https://example.com/oliver.stack => oliver
https://example.com/oliver.stackoliver.stack => oliver.stackoliver
期望的行为
https://example.com/oliver.stack => oliver
https://example.com/oliver.stackoliver.stack => oliver
Nginx重写规则
location ~ .stack$ {
rewrite ^/(.*).stack$ /vid.php?v=$1;
}
答案 0 :(得分:1)
stack$
将匹配" stack" 在该行的末尾(最终$
)。而且,.*
是贪婪的:它会尝试匹配最长的字符串。 .*?
是非贪婪的版本:
rewrite ^/(.*?)\.stack /vid.php?v=$1;