我发现简化和管理外部推荐链接的通用方法.其实在很早之前,我就写过类似的代码, 原理很简单,但是并不通用,每次增加一个新的链接就得在PHP里面代码.原理代码是:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | $pageurl=$QS->getVar('rid'); $found=false; if ($pageurl=='MyPrograms') { $QS->setVar('do', 'Life.Record'); $QS->setVar('rid', 'programs'); $found=true; } else if ($pageurl=='Interview.Facebook') { $QS->setVar('do', 'Life.Record'); $QS->setVar('rid', 'diary/2010/2010-04/2010-04-03_19.26PM.html'); $found=true; } else if ($pageurl=='Links') { $QS->setVar('do', 'Life.Record'); $QS->setVar('rid', 'links.php'); $found=true; } if ($found) { header("HTTP/1.1 301 Moved Permanently"); header('Location: https://steakovercooked.com/'.$QS->toQs2()); } else { die('Invalid Redirect. '.$pageurl); } |
$pageurl=$QS->getVar('rid'); $found=false; if ($pageurl=='MyPrograms') { $QS->setVar('do', 'Life.Record'); $QS->setVar('rid', 'programs'); $found=true; } else if ($pageurl=='Interview.Facebook') { $QS->setVar('do', 'Life.Record'); $QS->setVar('rid', 'diary/2010/2010-04/2010-04-03_19.26PM.html'); $found=true; } else if ($pageurl=='Links') { $QS->setVar('do', 'Life.Record'); $QS->setVar('rid', 'links.php'); $found=true; } if ($found) { header("HTTP/1.1 301 Moved Permanently"); header('Location: https://steakovercooked.com/'.$QS->toQs2()); } else { die('Invalid Redirect. '.$pageurl); }
比如这个例子 (2010年面试 Facebook). 这个不太好用,没有直接在 txt 里每行放一个链接来得实用.
建立一个 /out 目录并设置相应的权限 (例如 644) 然后只需要把这里的三个文件 (.htaccess, index.php, redirects.txt) 放到该目录下,并确认 redirects.txt 能被PHP读.
原理就是在访问 /out/example 的时候, .htaccess 重定向会变成 /out/index.php?id=example 然后 index.php 在执行的时候会去读 redirects.txt 文件(可更改路径或者文件名),将 redirects.txt (CSV 格式,按逗号隔开缩写和长的URL)里读到数组中. 如果有类似 example,URL 这一行,就会再 302重定向到该URL. 这样的好处是统一管理,并且不用担心 外部链接每次都要加上 nofollow 避免影响到SEO分数. 而且如果外部链接更改或者失效也不用每个地方都改(只需要改 redirects.txt 里对应的记录)
我的VPS上 现在一共放有 6 个网站, 我总不能每个网站都独立的一份 redirects.txt 这样也不好维护,于时我就把 redirects.txt 移动到非 public 的目录,例如 /var/www 下, 这样一来, 这个文件更不可能在浏览器里被直接访问了, 但是其它每个网站的目录下都需要拷贝 index.php 和 .htaccess 文件,只是 在index.php 里把读文件的 redirects.txt 改成:
1 | $f = fopen( '/var/www/redirects.txt', 'r' ); |
$f = fopen( '/var/www/redirects.txt', 'r' );
然后, 在替换以前的URL的时候, 可以不写 domain, 比如只写 /out/quickhost , 替换 WordPress 文中的URL的SQL:
UPDATE wp_posts SET post_content = REPLACE (post_content, 'https://www.quickhostuk.com/aff.php?aff=121', '/out/quickhost');
每个 WordPress 博客都这样替换, 不管你在哪个网站上, 都只需要引用 /out/quickhost 就可以, 相当简洁.
loading...
上一篇: 中年男人对电子产品的热爱
下一篇: 电话里的英文字母与英文单词
已在用,你这前面说得好复杂.
我只会用,不懂原理.感谢小赖子解释了一下背后的工作原理.
您的评论是一种美德,是对博主最大的支持与鼓励! 点击这里评论留言 并不需要注册 (文末评论处 填写[姓名]和[电子邮箱] 写完评论后 [发表评论] 就可以) 推荐使用 RSS 阅读器订阅. 推荐性价比高的 QuickHostUK 主机. 如果您在英国生活,那么一定要用TCB来返现,这样能给您省不少钱呢..
以上一段里面包含不少的信息量啊~~~赖博啊.
生活不易..学你的..:)
affiliate只要是博主自己使用过的或正在使用感觉好的,推荐出来无可厚非,不过为了aff而aff去挣那2,30刀我就觉得没意思了.
是的,推荐好的东西是做好事~
我就就赖博的SSL推荐,和英国折扣推荐.
我现在要追随赖博而去了……
过几天,给你们惊喜.
嗯嗯. 都是自己用过好用的才推荐.