如何获得网页的规范URL(Rails)?

时间:2013-07-24 15:39:58

标签: ruby-on-rails url

我需要为外部网页存储不同的网址

我需要将URL放入数据库。我不想两次存储同一页面 我需要删除网址上的所有漏洞。

# if I have
url_1 = "http://scientificamerican.com/royal-baby/?utm_campaign=promo"

# and
url_2 = "http://scientificamerican.com/royal-baby/?utm_source=email"

# then they should map to:
url_canonical = "http://scientificamerican.com/royal-baby/"

...它不像仅删除查询参数那么简单

为了获得单个规范URL而不管它是什么,我尝试剥离查询字符串。问题是仍有CMS使用查询字符串。

e.g。

url_1 = "https://www.scientificamerican.com/article.cfm?id=obama-budget"

# strip the query string and it becomes
url_1 = "https://www.scientificamerican.com/article.cfm"

# which is obviously the same for all articles :(

是否有用于获取网页规范网址的Rails工具?

这显然是许多人不得不解决的问题,尤其是搜索引擎。如何减少URL,使剩下的只是页面的数据?

1 个答案:

答案 0 :(得分:1)

你不能。无法知道区分URL所需的查询参数。显然有许多参数你可以故意删除(即utm_campaign等),但不是全部。

您最好的选择是加载页面的HTML并查找规范链接元素。如果存在,那么您已获得规范网址。

http://en.wikipedia.org/wiki/Canonical_link_element