2011-12-17 59 views

回答

25

與Apache 2.2(約以前的版本不知道),你可以使用正則表達式與負前瞻匹配比/assets其他所有根位置的URL路徑的目錄,如下所示:

<LocationMatch "^(?!/assets)/[^/]+"> 
    ... 
</LocationMatch> 

注意,這不包括根URL路徑/本身。

+0

要包含根URL路徑,只需用'*'替換'+'。 – 2016-09-21 12:35:23

+1

如果需要多個例外,該怎麼辦? – balping 2017-07-11 12:47:05

+2

@balping - 或者將它們與另一個組一起放在負向視圖中,像這樣:'^(?!/(?: assets | exception2 | exception3))/ [^ /] +' – ridgerunner 2017-07-11 13:20:35

-2

不幸的是,LocationMatch不支持負匹配:/(你可以打開一個Bugzilla條目這一點,這肯定會是有益的)

而且順便說一句,你可以簡單地把^/assets/作爲一個正則表達式,就沒有必要匹配完整位置。

有一件事可以做,以解決這是定義一個空LocationMatch爲^/assets/然後用<Location />

+3

是的,但你_can_使用正則表達式與_negative lookahead_以達到預期的效果。看到我的答案。 – ridgerunner 2011-12-17 19:40:31