跳轉到內容

XRX/URL 重寫

來自華夏公益教科書,開放的書籍,用於開放的世界
< XRX

您希望系統中的 URL/URI 反映服務的邏輯結構,而不是資料庫的集合結構。

方法 1:使用 Jetty 重寫處理程式

[編輯 | 編輯原始碼]

使用 Jetty 重寫處理程式,該處理程式可以與 Jetty 伺服器一起安裝。RewriteHandler 使用 XML 配置檔案來儲存 URI 的重寫模式。該檔案可以包含正則表示式,允許單個規則用於重寫大量 URI。

方法 2:使用 Atom 介面

[編輯 | 編輯原始碼]

eXist 原生 XML 資料庫有一個 Atom 釋出協議 介面。您可以使用它為現有 XQuery 建立新的 URL 介面。

假設您使用 XQuery 來執行過去 N 天內在專案 P 中發生更改的所有術語的報告。使用 eXist XQuery,URL 可能是

http://example.com/exist/rest/db/apps/glossary/views/terms-changed.xq?days=N&project=P/


URL 重寫可能是

http://example.com/terms/new/days=N/project=P/

這使得 URL 成為更穩定的應用程式程式設計介面,並允許您將 XQuery 移動到 eXist 資料庫中的另一個位置,並更改引數名稱,而不會影響您的使用者、他們的書籤或透過 REST 介面訪問此資料的其他系統。

使用 Apache Mod Rewrite 的示例

[編輯 | 編輯原始碼]

實現 URL 重寫的最流行方法是使用 Apache Web 伺服器作為 Web 應用程式的前端。這允許您將“動態”URL 轉換為看起來是“靜態”的 URL,在 URL 字串中沒有問號或符號,引數被傳遞就像它們是資料夾而不是鍵值對一樣。

以下是將新增到 Apache 配置檔案中的程式碼

Options +FollowSymLinks
RewriteEngine on
RewriteRule terms/new/days=(.*)/project=(.*)/ db/apps/glossary/views/terms-changed.xq?days=$1&project=$2

一個 XForms 應用程式,用於管理 Jetty 重寫 URL。

參考文獻

[編輯 | 編輯原始碼]

返回:內容路由

華夏公益教科書