2

如何在 Notes 9 XPages 中重写 URL。

假设我有:

www.example.com/myapp.nsf/page-name

我如何摆脱那个 .nsf 部分:

www.example.com/page-name

我不想做很多手动重定向,因为我的页面是像 wordpress 一样动态形成的。

我读过这个:http ://www.ibm.com/developerworks/lotus/library/ls-Web_site_rules/

它没有解决这个问题。

4

4 回答 4

4

如果您使用如下的替换规则,您可以去掉 db.nsf 部分并直接调用您的 XPage,如 example.com/xpage1.xsp:

Rule (substitution): /db.nsf/* -> /db.nsf/*
Rule (substitution): /* -> /db.nsf/*

但是,您必须在例如菜单中“手动”生成没有 db.nsf 部分的 URL,因为如果您使用例如 openPage 简单操作,XPages 运行时将在 URL 中包含 db.nsf 部分。

于 2013-05-08T20:22:38.040 回答
2

要完全控制进出的内容,请将 Domino 置于 Apache HTTP 后面并使用 mod_rewrite。在 Domino 9.0 Windows 上,您可以使用 mod_domino

于 2013-05-09T00:05:53.713 回答
1

您可以通过混合替换、“URL 模式”和部分刷新来做到这一点。

我遇到了同样的问题,我的客户想要干净的 SEO 网址。

我的网址现在看起来像这样:

www.myserver.de/products/financesoftware/anyproduct

首先,我使用一个替代来覆盖 URL 的文件夹、数据库和 xpage 部分。我的替换:“/products”->“/web/techdemo.nsf/product.xsp”

这些问题是,此站点上的任何更新(在重定向模式下)并且用户取回“脏”URL。我只使用部分刷新解决了这个问题。

最后但并非最不重要的一点是,我在 xpage 调用 (.xsp) 的末尾使用了我自己的斜线模式。在我的情况下,这就是“/financesoftware/anyproduct/”部分。我曾经facesContext.getExternalContext().getRequestPathInfo()解析过那个 URL 部分。

目前我使用良好的旧 RegExp 将斜杠分隔的参数从 url 中取出,但我目前正在研究 REST 解决方案。

于 2013-12-04T13:21:35.963 回答
0

我实际上并没有这样做,但昨天在寻找其他东西时看到了这个选项。在您的 Xpage 中,转到所有属性,然后查看“navigationRules”和“pageBaseUrl”。我想你会在那里找到你正在寻找的东西。

于 2013-05-08T17:10:56.360 回答