要重定向到的有效URL



我遇到了一个奇怪的情况,我有一个由我的用户编写的URL列表(有时会省略https,例如www.google.com或google.com(,我想重定向到这些URL,但我不确定我是否应该添加"http://";或";https://";,是否有一种可接受的方法或库将它们转换为在express res.redirect("url"(中使用的适当重定向链接

让我更清楚一点:

这是一个有效的快递代码:

res.redirect("http://www.google.com")

我有一个错误:

res.redirect("google.com")

它将我重定向到myhost/google.com。问题是,这些URL是如何编写的并不重要,如果你将它们复制并粘贴到chrome地址栏,它们就会起作用。我希望在我的重定向中使用相同的功能。

如果这太愚蠢了,我很抱歉,我是express和node.js 的新手

如果链接是默认网站,而不是FTP或任何其他资源,则应该NOT将协议添加到链接中。事实上,对于许多浏览器来说,http已经过时和弃用,而且在短时间内对于某些浏览器来说也将不再适用。如果SSL证书过时,这一点将来可能会改变。

无论如何,您应该以变量方法(而不是硬编码方式(添加它,添加一个可以在将来修改的函数,比如:

function addhttp($url) {
if (!preg_match("~^(?:f|ht)tps?://~i", $url)) {
$url = "http://" . $url;
}
return $url;
}

或者,如果你的应用程序中有这个层,你可以通过数据库来完成。然后将http或https添加到DB层的每个链接。

最新更新