当前位置

使用drupal_goto_alter来替换百度MIP表单Post提交后跳转网址

James Qi 在 2017年9月19日 - 16:20 提交
内容摘要:百度MIP我们也使用有一段时间了,现在开始有一点收录和流量,以前遗留的一些技术问题也需要去解决,包括表单Post方式提交后跳转网址不对的问题。 前面记录了一篇《AMP表单Post方式提交后不能跳......

  百度MIP我们也使用有一段时间了,现在开始有一点收录和流量,以前遗留的一些技术问题也需要去解决,包括表单Post方式提交后跳转网址不对的问题。

  前面记录了一篇《AMP表单Post方式提交后不能跳转的问题及解决办法》,Drupal中的搜索功能以前用AMP一样的办法:改表单为Get提交方式来实现Drupal中的正确跳转,对于联系我们、页面留言都还没有太关注,刚才看是可以跳转的,只是没有跳转到对应的mip页面,而是跳转到对应的web页面。

  AMP解决后,我去查了百度MIP官方网站中关于mip-form的文档,写得非常简单,没有说到需要改Header中用专用语句来实现跳转,网上也没有相关其它资料,那么我只需要修改跳转到的语句是对应的mip页面就可以了。

  用Drupal中自定义模块的钩子函数hook_drupal_goto_alter可以实现,代码如下:

function jamesqi_drupal_goto_alter(&$path, &$options, &$http_response_code) {
  $options['absolute'] = TRUE;
  $url = url($path, $options);
  global $theme;
  if ($theme == 'ampsubtheme_example') {
    $server_name = $_SERVER['SERVER_NAME'];
    header("AMP-Access-Control-Allow-Source-Origin: https://$server_name");
    header("AMP-Redirect-To: $url?amp");
    header("Access-Control-Expose-Headers: AMP-Redirect-To, AMP-Access-Control-Allow-Source-Origin,Access-Control-Allow-Origin");
echo json_encode(array("AMP-Redirect-To: $url?amp"));
    die();
  } elseif ($theme == 'mipsubtheme_example') {
    $options['query'] = array('mip'=>'');//添加查询参数mip
  }
}

  这个已经在我的博客中修改可用了,后面再推广到其它系列网站。

添加新评论

Plain text

  • 不允许使用HTML标签。
  • 自动将网址与电子邮件地址转变为链接。
  • 自动断行和分段。
验证码
本问题用于测试您是否为人类访问者,避免自动垃圾发贴。
图形验证
键入显示在图片中的字符