首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Gerrit 建立帶路徑專案報 404:斜線需 URL 編碼為 %2F

     編輯:程式設計綜合問答

問題現象

Gerrit 網頁介面建立專案時,專案名含路徑(如 `test/test`)會報 404。透過 SSH 指令建立帶路徑專案雖可顯示,但點入仍報無此頁面。

根因

Gerrit 使用 `/` 分隔 URL 中的 view 名稱與專案 ID。若專案 ID 含 `/`,必須在 URL 中編碼為 `%2F`。Apache 反向代理預設會拒絕含編碼斜線的請求,導致 404。

解決方案:修改 Apache 設定

# httpd.conf 或 gerrit 對應的虛擬主機設定
AllowEncodedSlashes On
ProxyPass /r/ https://127.0.0.1:8081/r/ nocanon
  • AllowEncodedSlashes On:允許 URL 中出現編碼後的斜線(`%2F`、`%5C`)。
  • nocanon:防止 Apache 規範化 URL 而解碼斜線導致路由錯誤。

驗證

重啟 Apache 後,網頁建立 `test/test` 專案應正常運作;SSH 建立的專案點入也能正確顯示。

參考

Gerrit 2.6.1 升級文檔說明此為已知問題,需配合 Apache 設定修正。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved