如何配置 URN

Posted

技术标签:

【中文标题】如何配置 URN【英文标题】:How to configure URN 【发布时间】:2016-06-30 20:57:58 【问题描述】:

我想了解以下网址。

https://server_ip/testing/urn:id:value

我从“https://server_ip/testing/”了解到包含协议 HTTPS 和服务器 ip 和路径。

我想知道 url "urn:id:value" 的剩余部分。 没有文件名和扩展名的 URL 是如何工作的。 在服务器端需要做什么来提供这种类型的 URL。

我正在使用 appache V2.4.12 和 php V5.5.10。

我从 *** 获得了一些知识来创建没有文件扩展名的 URL。

https://server_ip/testing/sample_code.php

https://server_ip/testing/sample_code

提前致谢

【问题讨论】:

【参考方案1】:

路径组件不是/testing/,而是/testing/urn:id:value

虽然路径段 urn:id:value 看起来像一个 URN,但在这种情况下它不是一个。它是一个 HTTPS URL,可能提供有关 URN 的一些信息,类似于 HTTPS URL,如

https://example.com/page-check/http://***.com/

这可能会提供有关 HTTP URL http://***.com/ 的信息(路径是 /page-check/http://***.com/)。

但它只是出于可用性原因才包含在这样的路径中。 URL 也可以类似于

https://example.com/page-check?protocol=https&domain=***.com&path=/

https://example.com/page-check/f623Dn1

【讨论】:

嗨,你能帮我举个例子吗?我需要在服务器端做什么。如果我使用 urn:id:value 在浏览器中打开网址。我找不到页面。 @Rajalakshmi:嗯,你必须为这个 URL 生成一个页面,就像任何其他页面一样:如果有人请求/foo,你提供一个特定的文档。如果有人请求/testing/urn:id:value,没有什么不同。 感谢您的回复。我已经在apache中完成了如下所述的配置。 "RewriteEngine On RewriteRule "/testing/" "/test/index.php" 获取 urn id 和 value。这是正确的方法。这会影响性能吗? 嗨 Unor,我知道这是旧的.. 但 : 不是用于分隔方案、用户/密码和主机/端口组件的保留字符吗?像您展示的那样在 URL 路径中使用它是否有效? @Rain:是的,但: 仅保留在该组件中。在路径组件中,它是未保留的(参见allowed chars in the path)。

以上是关于如何配置 URN的主要内容,如果未能解决你的问题,请参考以下文章

URI 如何包含 URN 和 URL?

如何在 .NET 中表示 URN(统一资源名称),以便 Equals 按预期工作

如何获取上传的伪造文件的 URN?

如何从 URN 或 id 获取 LinknedIn 帖子的 URL?

如何使用 javascript/Nodejs 从生成的 urn 中查看 Forge 中的 BIM360 Revit 文件

如何从 revit 插件或使用 Forge api 为 Revit 文件创建 URN