javascript避免重复的网址

时间:2012-01-19 19:51:13

标签: javascript string url url-rewriting uri

如何检查javascript中的两个网址是否相同?

例如,我不想将这两个存储在数据库中:

  

example.com/dogs/
  example.com/dogs

或两者:

  

www.example.com
  example.com

或两者:

  

http://example.com
  https://example.com

...那么在URL中获取GET数据呢?我的数据库可能会变得非常混乱。

有没有办法可以将所有网址转换为某种标准格式,以便检查重复网页会更简单?

谢谢大家!

2 个答案:

答案 0 :(得分:0)

Google通过使用link rel="canonical"解决了这个问题 - 此过程称为canonicalization

当然,如您所述,您可以使用regexp简化网址,但“example.com”和“www.example.com”可能是不同的网站。

答案 1 :(得分:0)

如果您只想存储网站的基础域,我就会这样做。

var url = "http://www.xyzsite.com/mySite/?param=1"; // This is the url you want to process.

var filter = [
    "http://",
    "https://",
    "www.",
];

// Loops through array and removes the protocol and www. prefixes if present
for (var i in filter) {
    url = url.replace(filter[i], "");
}

// Returns everything before the first / in the URL
var cleanUrl = url.split("/")[0]; // cleanUrl should equal "xyzsite.com" now

我可能会将它包装在一个函数中,这样它也很容易运行多次。