discuz帖子内容外链内部跳转go.php的方法

之前有写过wordpress外链跳转go形式
今天介绍Discuz! X3.2 外部链接以go.php的形式跳转

看到有些网站在发帖加url的时候,会做内部跳转,跳转地址类似:http://www.545141.com/go.php?url=www.545141.com 这样可以减少网站的导出链接,下面说下修改方法:
找到文件:source/function/function_discuzcode.php
找到这样一个函数:

function parseurl($url, $text, $scheme) {  
    global $_G;  
    if(!$url && preg_match("/((https?|ftp|gopher|news|telnet|rtsp|mms|callto|bctp|thunder|qqdl|synacast){1}:\/\/|www\.)[^\[\"']+/i", trim($text), $matches)) {  
        $url = $matches[0];  
        $length = 65;  
        if(strlen($url) > $length) {  
            $text = substr($url, 0, intval($length * 0.5)).' ... '.substr($url, - intval($length * 0.3));  
        }  
        return '<a href="'.(substr(strtolower($url), 0, 4) == 'www.' ? 'http://'.$url : $url).'" target="_blank">'.$text.'</a>';  
    } else {  
        $url = substr($url, 1);  
        if(substr(strtolower($url), 0, 4) == 'www.') {  
            $url = 'http://'.$url;  
        }  
        $url = !$scheme ? $_G['siteurl'].$url : $url;  
        return '<a href="'.$url.'" target="_blank">'.$text.'</a>';  
    }  
}  

将其替换为(记得把下边的www.545141.com改成自己的域名):

function parseurl($url, $text, $scheme) {  
     global $_G;  
     if(!$url && preg_match("/((https?|ftp|gopher|news|telnet|rtsp|mms|callto|bctp|thunder|qqdl|synacast){1}:\/\/|www\.)[^\[\"']+/i", trim($text), $matches)) {  
          $url = $matches[0];  
          $length = 65;  
          if(strlen($url) > $length) {  
               $text = substr($url, 0, intval($length * 0.5)).' ... '.substr($url, - intval($length * 0.3));  
          }  
          return '<a href="http://www.545141.com/go.php?url='.(substr(strtolower($url), 0, 4) == 'www.' ? 'http://'.$url : $url).'" target="_blank">'.$text.'</a>';  
     } else {  
          $url = substr($url, 1);  
          if(substr(strtolower($url), 0, 4) == 'www.') {  
               $url = 'http://'.$url;  
          }  
          $url = !$scheme ? $_G['siteurl'].$url : $url;  
          return '<a href="http://www.545141.com/go.php?url='.$url.'" target="_blank">'.$text.'</a>';  
     }  
}  

即可实现。

go.php代码:

<?php  
header('Location: '.$_GET['url']);   

如果还想再复杂点,好看点的话请参考wordpress外链跳转go形式和其中的参考文章。
参考文章:
discuz帖子链接加内部跳转的方法
http://www.php2.cc/article-1123-1.html


 继续浏览关于 技术discuz 的文章

 本文最后更新于 2019/07/21 03:02:33,可能因经年累月而与现状有所差异

 引用转载请注明:icret > 教程 > discuz帖子内容外链内部跳转go.php的方法