百度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; }
另外,這個還沒有完全成功,待排查......
评论