百度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; global $theme; if ($theme == 'ampsubtheme_example') { $server_name = $_SERVER['SERVER_NAME']; $options['query'] = array('amp'=>''); $url = url($path, $options); header("AMP-Access-Control-Allow-Source-Origin: https://$server_name"); header("AMP-Redirect-To: $url"); 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")); die(); } elseif ($theme == 'mipsubtheme_example') { $options['query'] = array('mip'=>'');//添加查询参数mip } }
这个已经在我的博客中修改可用了,后面再推广到其它系列网站。
2017年10月31日补充:
如果开启了Honeypot并且默认启用了一个陷阱url的表单项(来引诱填表机器人填写以鉴别和屏蔽垃圾信息),在Web版本上看不到这个,但在amp版本中会看到标题为Leave this field blank的输入框,需要修改css来不显示,具体是../sites/all/themes/miptheme/mipsubtheme_example/css/mip-custom-styles.css中添加:
.url-textfield { display:none; }
另外,这个还没有完全成功,待排查......
评论