XRX/URL 重写
外观
< XRX
您希望系统中的 URL/URI 反映服务的逻辑结构,而不是数据库的集合结构。
使用 Jetty 重写处理程序,该处理程序可以与 Jetty 服务器一起安装。RewriteHandler 使用 XML 配置文件来存储 URI 的重写模式。该文件可以包含正则表达式,允许单个规则用于重写大量 URI。
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 接口访问此数据的其他系统。
实现 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。
- 维基百科关于重写引擎的文章
- Jetty 重写处理程序
- 帮助您学习如何编写 Apache 重写规则的工具
- 精通正则表达式,Jeffrey E.F. Friedl,Nutshell 手册系列,O'Reilly & Associates, Inc. 1997,ISBN 1-56592-257-3
- Drupal 如何使用 PATH 模块处理 URL 重写的极佳示例