当前位置: 首页 > 面试题库 >

如何使用hashbang网址处理Facebook共享/喜欢?

罗昕
2023-03-14
问题内容

我正在建立一个网站,从主页我将在网站上打开其他一些URI到灯箱(AJAX)中,并且我想使用HTML5推送状态和哈希爆炸作为后备来管理状态变化。

现在,我希望这些网址是可抓取的,并且Facebook可共享/可喜。

如果用户浏览器支持HTML5推送状态,没问题,他可以共享URL(例如http://myserver/example:),Facebook将在静态内容中找到适当的OG元数据。

但是,如果用户使用HTML4浏览器,则他将拥有网址,例如http://myserver/#!/example。而且我希望他无论如何都能通过Facebook分享…

现在看来Facebook支持_escaped_fragment_替换方法,因此我虽然将请求重定向http://myserver/?_escaped_fragment_=/example
http://myserver/example ,但每个人都应该很高兴……

所以我给htaccess添加了一个重写条件:

RewriteCond %{QUERY_STRING} ^_escaped_fragment_=([^&]*)
RewriteRule .* http://%{HTTP_HOST}/%1? [R=301,L,NE]

我的问题是我无法使其与Facebook一起使用,而在Facebook linter上,它似乎始终在哈希爆炸之后始终将URL的一部分转义,导致url
http://myserver/%2Fexample降落到404 :-(

有谁知道如何欺骗Facebook不要转义URL的这一部分?我可以在apache mod_rewrite方面做些什么吗?

我也愿意接受其他任何有效的Ajax可抓取/喜欢的URL策略;)


问题答案:

我结束了使用php header()重定向的操作,该操作很完美:

if(isset($_GET['_escaped_fragment_'])) {
    Header( "HTTP/1.1 301 Moved Permanently" );
    header('Location: http://'.$_SERVER['HTTP_HOST'].$_GET['_escaped_fragment_']);
    die();
}

我不知道为什么在使用htaccess重写条件时会出现转义字符。



 类似资料:
  • 问题内容: 我相信这是一个简单的问题,但我找不到答案,或者至少在搜索中使用正确的字词。 我正在设置并在一起。默认情况下,Angular将使用和之类的路径。 如果可能的话,我想避免使用path作为哈希值。如Angular 文档所述: 路由器的r函数将设置为,使其成为默认策略。如果愿意,我们可以在引导过程中使用覆盖切换到。 然后… 几乎所有Angular 2项目都应使用默认的HTML 5样式。它产生的

  • 我的微服务架构中有几项服务。 其中两个服务(服务A、服务B)有不同的api,并提供不同的域逻辑。然而,它们确实共享一些应该从Redis返回的逻辑-用户状态。 当用户状态更改时,我正在从第三个服务发布到我的所有微服务 解决方案: > 我可以创建另一个服务,负责“用户状态”并将保存Redis上的所有用户数据。缺点:我的客户端将对每个api请求进行额外调用(以获取用户状态)。 为每个微服务复制用户状态数

  • 我正在使用ShareKit在Facebook上共享一条简单的文本。我使用cocoapods在我的应用程序上安装ShareKit(使用iOS7和XCode5),并遵循配置教程ConfigurationShareKit。更具体地说,我会做以下事情: 1) 将URL方案写入plist。 2) 创建DefaultShkConfiguration子类: 3)在AppServer ate中进行初始配置: 4)

  • URL代表统一资源定位符,表示万维网上的资源,例如网页或FTP目录。 本节介绍如何编写与URL通信的Java程序。 URL可以分解为多个部分,如下所示 - protocol://host:port/path?query#ref 协议示例包括HTTP,HTTPS,FTP和文件。 该路径也称为文件名,主机也称为权限。 以下是协议为HTTP的网页的URL - https://www.amrood.co

  • 我正在与谷歌应用程序引擎项目合作,我希望像这样使用facebook共享。 http://i.stack.imgur.com/uz52n.png 我已经读过这篇文章,Facebook Sharer在分享我的URL时是如何选择图像和其他元数据的? 但是GAE不能上传物理图像,数据库中blob属性中的所有图像存储为base64,因此facebook共享无法获取图像:(有人对此问题有其他想法吗?)??

  • 有没有一种方法可以使用android和facebook sdk在facebook messenger中共享文本?