不一样的免插件实现URL外链GO效果

很多时候需要在站内做外链的跳转,既想留住连接并且又不希望访客看到目标页面的地址。
实现起来有很多方法,比较简单的是使用插件,推荐的有Simple URLs、Go Codes等。
虽然插件很方便,但是我这里说的是另外一个免插件的方法,无插件的话写htaccess也可以,但是无法在 WEB 端快捷的编辑。
先说我想要的需求:
1、容易部署
2、容易管理
3、隐藏目标地址
4、统计(没有实现代码)

我这的解决方案是建一个文件夹,两个文件,其实如果用伪静态的话,一个文件就行。
步骤1:
在主题模板下建立任意名字的 php 文件,我这里为 go.php ,建在主题下边为的是以后可以在 仪表盘 > 外观 > 编辑 中方便的编辑。
文件开始的内容就是你要跳转链接的数组, keys 为跳转的关键字, values 为目标地址,这样可以达到隐藏真实地址的方式,如果不想隐藏就 key 和 value 写一样的呗。

$url= [
    "tools" => "https://tools.dyniao.com",
    "dyniao" => "https://www.dyniao.com",
];

$go=$_SERVER['QUERY_STRING'];

if(array_key_exists($go, $url))
{
   header("Location: $url[$go]");
   //PHP默认 302 跳转。如果需要 301 ,写成下边的样子。
   //header("Location: $url[$go]", true, 301);
   exit;
}

代码没几行,主要是先声明个跳转数组,然后从 url 中获取关键字,再根据关键字判断应该跳还是不跳,这样也就避免了,有人拿你的跳转来干坏事。
步骤2:
不愿意用伪静态就这么办!
在根目录建立 go 文件夹,内部放一个 index.php 文件,代码如下

include '../wp-content/themes/你的主题/go.php';

然后外链链接这么写

https://www.dyniao.com/go/?你的外链

如果想用伪静态就这么办!
写个伪静态规则
nginx

rewrite ^/go/(.*)$ /wp-content/themes/你的主题/go-url.php?$1 last;

htaccess

RewriteRule go/(.*) wp-content/themes/你的主题/go.php?$1

然后外链链接这么写

https://www.dyniao.com/go/你的外链

就是相差一个“?”。

最后留的“统计”坑,其实可以这么实现,而且不用数据库,把数组改成文件格式,一行一个跳转地址和次数。然后 php 读写文件增加次数就行了。
目前还不用统计,暂时不写了,留着坑了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注