为typecho设置外链转内链
先热身一下:微博URL短网址生成算法原理及(java版、php版实现实例)
wordpress版本请看 http://zhangge.net/5086.html
第一篇:
打开var/Widget/Abstract/Comments.php
文件,寻找
if ($this->url && $autoLink) {
echo '<a href="' , $this->url , '"' , ($noFollow ? ' rel="external nofollow"' : NULL) , '>' , $this->author , '</a>';
} else {
echo $this->author;
}
修改为
if ($this->url && $autoLink) {
if(strpos($this->url, $this->options->siteUrl)!==false) {
echo '<a href="', $this->url, '">', $this->author, '</a>';
} else {
echo '<a href="', $this->options->siteUrl, 'go.html?url=', urlencode($this->url), '"', ' rel="nofollow"', '>', $this->author, '</a>';
}
} else {
echo $this->author;
}
跳转页采用的是html静态页+javescript方式跳转,你也可以改用php方式,我的跳转go.html代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head profile="http://gmpg.org/xfn/11">
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Microhu's Blog - 正常跳转</title>
<style type="text/css">
#show{width:500px;margin:100px auto 0;font-size:18px;color:blue;}
#show span{color:red;font-weight:blod;}
</style>
</head>
<body>
<div id="show"></div>
<script type="text/javascript">
<!--
function getUrl(){
var theUrl=location.href.split('?url=');
if(theUrl.length==1)
return 'http://www.microhu.com';
return decodeURIComponent(theUrl[1]);
}
var showme=document.getElementById('show');
showme.innerHTML='正在为你跳转到:<span>'+getUrl()+'</span>';
location=getUrl();
//-->
</script>
</body>
</html>
方法来自:@羊窝 (已关?)
第二篇:
简单方法,不用插件实现外链转内链
typecho可以自定义404页面,通过404.php即可不用插件实现外链转内链
首先,在模板目录下建立一个空的php文件:url.php,写入以下内容:
<?php
return array(
//此处以下为内链“链接地址”=>“外链地址”,依次添加自定义的转向。
'key' => 'your url here',
'weibo' => 'http://weibo.com',
'typecho' => 'http://typecho.org',
'google' => 'http://google.come',
);
?>
也就是建立一个返回数组的php文件,通过array[key]来实现读取url,以达到目的。
创建404.php页面,如果有,则直接打开编辑,在最上方加入如下代码:
$tempStr = str_replace("/index.php","",$_SERVER['REQUEST_URI']);
$action = substr($tempStr,1,2 );
if( $action == "go" ){
$urlArr = include_once 'tpl_url.php';
$query = trim(substr($tempStr,4),"/");
foreach($urlArr as $key=>$value){$arr[]=$key;}
if(in_array($query,$arr)){
header("Location: ".$urlArr[$query]);
}
}
上传,在后台“控制台”-》“网站外观”-》“编辑当前外观” 中,找到url.php,在里面修改添加自己要生成的外链转向。
如上,http://m69w.com/go/typecho 即可转向到 http://typecho.org; http://m69w.com/go/google 即转向到 http://google.com
添加自己的转向吧。
第三篇:
插件实现:
GoLinks.0.3.0
LinksRedirect(v1.0.1).zip
ShortLinks - 外链转内链,支持正文和评论者链接
第四篇
确切的说没有四的,插件+张戈博客那个JS版本
在typecho.conf
中添加rewrite ^/go/(.*)$ /go.html?url=$1 last;
,如下
if (!-e $request_filename){
rewrite ^/go/(.*)$ /go.html?url=$1 last;
rewrite (.*) /index.php;
}
在ShortLinks插件中Plugin.php的108,114行改为对应就行了,简直简单粗暴
ShortLinks插件是带301重定向
的,在Action.php中,视情况删留
标签:typecho