ScriptAlias:如何將 DocumentRoot 標記到目標目錄

ScriptAlias:如何將 DocumentRoot 標記到目標目錄

我正在託管一個 git apache 伺服器,我需要使用 ScriptAlias 觸發一個腳本。我想知道是否可以以這種方式使用 ScriptAlias,因此https://domain只有在有針對 DocumentRoot (例如)的 GET 請求時才會觸發它:

ScriptAlias / /path/to/script

不幸的是,這不起作用,所以我的解決方法是使用

ScriptAlias /git /path/to/script

(git 只是一個佔位詞)這意味著我的 git 儲存庫位置將是 有https://domain/git/foo/bar.git沒有辦法將其簡化為https://domain/foo/bar.git

非常感謝

編輯:更簡潔 我想將 URL 對應https://domain/到檔案系統中的 cgi 腳本(在 DocumentRoot 目錄之外)。而且ScriptAlias / /path/to/script似乎不起作用。

答案1

指令ScriptAlias做了兩件事:

  • 第一個與該指令本質上相同Alias,它將 URL 映射到檔案系統路徑,該路徑通常不是DocumentRoot.
  • 第二個是它將該目錄標記為包含 CGI 腳本的目錄。

當 CGI 腳本已經存在時,DocumentRoot您不需要該Alias功能且ScriptAlias不需要使用 a ,您只需要執行第二個操作:

<Location "/">
    SetHandler cgi-script
    Options +ExecCGI
</Location>

相關內容