我正在嘗試使用regex
,它只匹配不以其他字符串開頭的字符串。據我所知,從some其他questions這裏堆棧溢出我應該使用一個負向前瞻斷言。但由於某種原因,它似乎並不奏效。考慮以下三個字符串:匹配不以字符串開頭的字符串
/match.jpg
match.png
excludedpath/no-match.gif
我希望我的正則表達式模式只匹配前兩個字符串,因爲最後一個字符串與excludepath/
開始。我試過的是以下內容:
(?!excludedpath\/)(.*)\.(gif|jpg|png)$
我想在Apache的重寫規則中使用此正則表達式模式。基本上,我想簡單地加載所有圖像(與三條支線),除非他們是在http://example.com/excludedpath/some-image.jpg
格式:
RewriteCond %{REQUEST_FILENAME} (?!excludedpath\/)(.*)\.(gif|jpg|png)$
RewriteRule ^(.*)$ $1 [L]
RewriteCond "/my/path/to/application/%{REQUEST_URI}" !-f
RewriteRule ^(.*)$ /index.php/$1 [L]
任何人都可以告訴我,爲什麼它仍然是所有三個字符串匹配:This Link以及如何解決它?
也許你可以使用一個額外的負狀態HTTP ://stackoverflow.com/questions/6869679/negative-rewrite-rule-for-redirecting-everything-thats-not-an-image – ziya