1

假设我有两个 URL:

http://foo.com/homepage.html

https://foo.com/homepage.html?ref=topnav&bar=1

有什么简单的方法(或一些简单的外部库)可以用来检查两个 URL 是否相同,不包括 http/https 和不包括任何参数?

例如,上面的两个 url 是等价的。

4

1 回答 1

3

您可以使用URI并比较路径:

require 'uri'

uri = URI("https://foo.com/homepage.html/ref=topnav?bar=1")
#=> #<URI::HTTP:0x00000000b14880
      https://foo.com/homepage.html/ref=topnav?bar=1>

uri.path
#=> "/homepage.html"

uri.host
#=> "foo.com"

还有其他方法URI可以以不同的方式分解 URI。因此,您可以编写一个方法来根据您想要的多种方式进行比较。

于 2013-11-04T21:41:48.653 回答