• DT6.0下搜索页解决canonical获取乱码问题


      最近研究dt6.0,官方内核默认是把搜索页屏蔽的,但是做seo的人都知道,搜索页聚合是争取排名的好地方,所以我就二次开发搜索页,具体可以查看前几期分享的,今天说说关于搜索的canonical的url乱码问题。

       首页第一步:找到api/extend.func.php下在最后面插入以下函数,本函数是自己写的,如有其他更精简写法可以一起交流。

      

    if( isset( $_SERVER['HTTP_X_ORIGINAL_URL'] ) ){
       // IIS Mod-Rewrite
       $_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_ORIGINAL_URL'];
    } else if( isset( $_SERVER['HTTP_X_REWRITE_URL'] ) ) {
       // IIS Isapi_Rewrite
       $_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_REWRITE_URL'];
    } else {
       // Use ORIG_PATH_INFO if there is no PATH_INFO
       ( !isset( $_SERVER['PATH_INFO']) && isset( $_SERVER['ORIG_PATH_INFO'] ) ) && ( $_SERVER['PATH_INFO'] = $_SERVER['ORIG_PATH_INFO'] );
       // Some IIS + PHP configurations puts the script-name in the path-info ( No need to append it twice )
       if ( isset( $_SERVER['PATH_INFO'] ) ) {
           ( $_SERVER['PATH_INFO'] == $_SERVER['SCRIPT_NAME'] ) ? ( $_SERVER['REQUEST_URI'] = $_SERVER['PATH_INFO'] ) : ( $_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME'] . $_SERVER['PATH_INFO'] );
       }
       // Append the query string if it exists and isn't null
       ( isset($_SERVER['QUERY_STRING'] ) && !empty( $_SERVER['QUERY_STRING'] ) ) && ( $_SERVER['REQUEST_URI'] .= '?' . $_SERVER['QUERY_STRING'] );
    }
    

        然后在搜索模板下添加:

       

    <link rel="canonical" href="<?php  echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];?>" />
    

       这样就好了,具体演示:

    http://zhimo.yuanzhumuban.cc/news/search-htm-kw-%E8%AF%86%E5%88%AB.html

  • 相关阅读:
    ecstore前台模板变量处理
    MySQL慢查询日志总结
    Linux 操作MySQL常用命令行
    CGI、FastCGI和php-fpm的概念和区别
    sync实现windows与nginx主机端文件同步(参考文档)
    PHP实现四种基本排序算法
    http和https协议
    linux的计划任务
    php封装一个接口类
    mysql的常见面试问题
  • 原文地址:https://www.cnblogs.com/68xi/p/9196569.html
Copyright © 2020-2023  润新知