Apache-2.2

在 Apache 2.2 的 LocationMatch 指令中使用 JkMount

  • September 2, 2016

我在使用 Apache 2.2.2 的 Debian Wheezy。我以前VirtualHost使用以下命令轉發到 Tomcat 的所有請求:

JkMount / ajp13_worker
JkMount /* ajp13_worker

現在,我想foo從這個設置中排除一個特定的 URL 前綴,但要保留它。我嘗試使用LocationMatch如下指令:

<LocationMatch "^/(?!foo)">
   # JkMount commands
</LocationMatch>

如果按原樣使用,我會收到以下錯誤消息:

JkMount can not have a path when defined in a location

但是,如果我嘗試使用,JkMount ajp13_worker則會收到錯誤消息:

JkMount context should start with /

如何僅針對不以 開頭的 URL 獲得正確的行為/foo

JkMount 的替代方案:

<LocationMatch "^/(?!foo)">
  SetHandler jakarta-servlet
  SetEnv JK_WORKER_NAME ajp13_worker
</LocationMatch>

引用自:https://serverfault.com/questions/671110