Discuz X 게시판 게시 물의 외부 링크 에 nofollow 속성 추가

Discuz X 포럼 의 외부 링크 에 nofollow 방법 을 추가 하고 테스트 버 전 Discuz!X 3.1, 기타 버 전 은 테스트 되 지 않 았 습 니 다.
디 렉 터 리 열기 source / function / functiondiscuzcode. php 파일, parseurl 함 수 를 찾 아 다음 코드 를 대조 하여 수정 합 니 다.
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));
		}
        $url = nofollow($url);
		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="'.nofollow($url).'" target="_blank">'.$text.'</a>';
	}
}

parseurl 함수 뒤에 nofollow 함 수 를 추가 합 니 다. 코드 는 다음 과 같 습 니 다.
function nofollow($url = '')
{
    $temp = array();

    if( ! empty($url))
    {
        $temp = parse_url($url);

        if(isset($temp['host']) && $temp['host'] != $_SERVER['HTTP_HOST'])
        {
            $url .= '" rel="nofollow"';
        }
    }

    unset($temp);
    return $url;
}

좋은 웹페이지 즐겨찾기