2016-11-20 37 views
0

我想我重寫規則只捕獲的第一場比賽,而忽略其餘改寫比賽只有第一次出現

當前行爲

https://domain.com/oliver.stack => oliver 
https://domain.com/oliver.stackoliver.stack => oliver.stackoliver 

期望的行爲

https://domain.com/oliver.stack => oliver 
https://domain.com/oliver.stackoliver.stack => oliver 

Nginx的重寫規則

location ~ .stack$ { 
     rewrite ^/(.*).stack$ /vid.php?v=$1; 
    } 

回答

1

stack$將在行(最終$)的末尾匹配「堆棧」。此外,.*是貪婪的:它會嘗試匹配最長的字符串。 .*?是非貪婪版本:

rewrite ^/(.*?)\.stack /vid.php?v=$1; 
+0

感謝您的解釋 – user2650277