JavaScript избегать дублирования URL - PullRequest
1 голос
/ 19 января 2012

Как я могу проверить, одинаковы ли два URL в javascript?

Например, я бы не хотел хранить оба из них в базе данных:

example.com / собаки /
example.com / собаки

или оба из них:

www.example.com
example.com

или оба из них:

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

... а как насчет получения данных в URL? Моя база данных может стать очень грязной.

Можно ли как-то преобразовать все URL-адреса в какую-то стандартную форму, чтобы проверка на дубликаты была намного проще?

Спасибо всем!

Ответы [ 2 ]

0 голосов
/ 20 января 2012

Если вы просто хотите сохранить базовый домен для сайта, это то, что я бы сделал.

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

Я бы, вероятно, обернул его в функцию, чтобы его было легко запускать несколько раз..

0 голосов
/ 19 января 2012

Google решил эту проблему с помощью usign link rel = "canonical" - этот процесс называется canonicalization .

Конечно, вы можете упростить URL с помощью regexp, как вы описываете, но «example.com» и «www.example.com» могут быть разными сайтами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...