我要创建一个网站,允许用户添加关键字 - > URL链接。我想多个用户能够链接到相同的URL(完全一样,相同的对象实例)。

因此,如果用户1种类型“ http://www.facebook.com/index.php “和用户2种类型 ” http://facebook.com “ 和用户3种类型” 万维网。 facebook.com“怎么办我最好的‘’他们什么这些都决心:”转换 HTTP://www.facebook的.com /

后端是在Python ...

如何做一个搜索引擎跟踪URL的?难道他们保持一个URL然后采取什么都解析到一个或他们折腾的是来自不同的网址,他们下定决心,只是关心解决的版本?

感谢!!!

有帮助吗?

解决方案

  

因此,如果用户1种类型“ http://www.facebook.com/index.php “和用户2种类型 ” http://facebook.com “ 和用户3种类型” 万维网。 facebook.com“怎么办我最好的‘’他们什么这些都决心:”转换 HTTP://www.facebook的.com /

您会通过固定了无效的网址,解决用户3。 www.facebook.com是不是一个URL,但你可以猜测,http://应该去开始。空路的部分是一样的/路径,所以你可以肯定的是需要去结束了。一个好的URL解析器应该能够做到这一点。

您可以通过使一个HTTP HEAD请求的URL解决用户2。如果它回来了与301的状态代码,您已经有了一个永久重定向到在Location响应头真正的URL。 Facebook上这样做是为了facebook.com流量发送到www.facebook.com,和它肯定的东西,网站应该做的事(尽管在现实世界中很多都没有)。你可能会允许考虑允许在3xx家人做同样的其它重定向状态代码;它不是真正做正确的事情,但有些网站使用302代替301的重定向,因为他们有点厚。

如果你有时间和网络资源(加上更多的代码,以防止该功能被滥用于DoS攻击你或其他人),你也可以考虑让目标网页并解析它(假设它原来OT是HTML)。如果在页面中的元素<link rel="canonical" href="..." />,你也应该把该URL为正确的一个。 (查看来源:堆栈溢出执行此)

然而,不幸的是,用户1的情况下,不能得到解决。 Facebook正在以/服务在/index.php一个页面,一个页面,虽然我们可以看看他们,说他们是一样的,有来形容这种关系没有任何技术方法。在一个理想世界的Facebook将包括无论是301重定向响应或<link rel="canonical" />告诉人们,/是正确格式的URL来访问一个特定的资源,而不是/index.php(反之亦然)。但他们不这样做,事实上,大多数数据库驱动的网站不这样做又或者。

要解决这个问题,一些搜索引擎(*)比较在不同的[子]结构域的内容,并且在有限的程度相同的主机上也不同的路径,并猜测它们是相同的,如果含量足够类似。当然,这是大量的工作,需要大量的存储和处理,而最终是不是非常可靠。

我不会真正与多的这种麻烦,超出了用户3壳体固定起来的URL等。从你的描述它不似乎必要的网页说:“都一样”必须共享真实身份,除非有你没有提到特定用例。

(*:好了,反正谷歌;更传统的那些传统上不和将愉快地满足了对于同一页面的多个链接,但我会承担其他专业,现在正在做类似的东西)

其他提示

有没有办法知道,比对特定网站的“神奇”的知识等,即“的index.php”是一样的取“/".

所以,你的问题,如上所述,是不可能的。

我会节省3链路分离的,因为你永远不能可靠地告诉他们解析到同一页面。这一切都取决于服务器(在我们控制的)如何解析URL。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top