网站外链改造记录


早上的时候查了下网站的权重,感觉关键词流出还是挺严重的,虽然网站没什么人访问,但是折腾折腾总是好的。
思路不外乎就是单独设置一个页面,然后URL传参 base64 加密,早上抽空构思了下,中午利用吃饭时间改造。
本外链改造教程适用于typecho,wordpress 同理,所以又名:typecho(wordpress)外链改造记录。

原代码是这样的:

$content = preg_replace( '#<a(.*?) href="([^"]*/)?(([^"/]*)\.[^"]*)"(.*?)>#','<a$1 href="$2$3""$5 target="_blank">', $content );

想着直接将$2$3 base64_encode 就行,但是发现这样子会将 ``$2$3 当作字符解析了。
然后谷歌了下,没什么干活。顺道发现一个有趣的事情,在逼呼上面发现和我想的一样的同学。

原文:如何使用preg_replace正则替换的同时对匹配的内容进行base64_encode()加密?

链接:https://www.zhihu.com/question/266234806

最后发现0回答,无奈只有自己翻手册了,发现了preg_replace_callback 函数。
preg_replace_callback — 执行一个正则表达式搜索并且使用一个回调进行替换

mixed preg_replace_callback ( mixed $pattern , callable $callback , mixed $subject [, int $limit = -1 [, int &$count ]] )

这个函数的行为除了 可以指定一个 callback 替代 replacement 进行替换 字符串的计算,其他方面等同于 preg_replace()。
具体请看这里:http://php.net/manual/zh/function.preg-replace-callback.php

改造后的图片见下图。

禾令奇截图20180625221901.png

在需要改造的地方加入这段代码,代码的意思是,extLinks函数引用forReplace函数,利用正则匹配,将匹配结果base64加密。
细心的同学可能会发现在forReplace函数里面 a 标签跳转到go.html页面了。
go.html 这个页面就是流出页,Typecho 主题改造也很简单,加一个自定义页面,然后加入接收$_GET['u']参数,然后解析参数,
最后js跳转。具体HTML 代码请看本站外链页。

本站采用「署名 4.0 国际(CC BY 4.0)」创作共享协议,转载请注明本文出处及链接。

Tags: preg_replace,preg_replace_callback,外链改造,匹配加密,typecho外链

文章翻页

头像
游客
  • 默认
  • 小黄鸡
  • 趣图
  • face_01.png
  • face_02.png
  • face_03.png
  • face_04.png
  • face_05.png
  • face_06.png
  • face_07.png
  • face_08.png
  • face_09.png
  • face_10.png
  • face_11.png
  • face_12.png
  • face_13.png
  • face_14.png
  • face_15.png
  • face_16.png
  • face_17.png
  • face_18.png
  • face_19.png
  • face_20.png
  • face_21.png
  • face_22.png
  • face_23.png
  • face_24.png
  • face_25.png
  • face_26.png
  • face_27.png
  • face_28.png
  • face_29.png
  • face_30.png
  • face_31.png
  • face_32.png
  • face_33.png
  • face_34.png
  • face_35.png
  • face_36.png
  • face_37.png
  • face_38.png
  • face_39.png
  • face_40.png
  • face_41.png
  • face_42.png
  • face_43.png
  • face_44.png
  • face_45.png
  • face_46.png
  • face_47.png
  • face_48.png
  • face_49.png
  • face_50.png
  • face_51.png
  • face_52.png
  • face_53.png
  • face_54.png
  • face_55.png
  • face_56.png
  • face_57.png
  • face_58.png
  • face_59.png
  • face_60.png
  • face_61.png
  • face_62.png
  • face_63.png
  • face_64.png
  • face_65.png
  • face_66.png
  • face_67.png
  • face_68.png
  • face_69.png
  • face_70.png
  • face_71.png
  • face_72.png
  • face_73.png
  • face_74.png
  • face_75.png
  • face_76.png
  • face_77.png
  • face_78.png
  • face_79.png
  • face_80.png
  • face_81.png
  • face_82.png
  • face_83.png
  • face_84.png
  • face_85.png
  • face_86.png
  • face_87.png
  • face_88.png
  • face_89.png
  • face_90.png
  • face_91.png
  • face_92.png
  • face_95.png
  • face_96.png
  • face_97.png
  • face_98.png
  • face_99.png
  • face_100.png
  • face_101.png
  • face_102.png
  • face_103.png
  • face_104.png
  • face_105.png
  • face_106.png
  • face_107.png
  • face_108.png
  • face_109.png
  • face_110.png
  • face_111.png
  • face_112.png
  • face_113.png
  • face_114.png
  • face_115.png
  • face_117.png
  • face_118.png
  • face_119.png
  • face_120.png
  • face_121.png
  • face_122.png
  • face_123.png
  • face_124.png
  • face_125.png
  • face_126.png
  • face_127.png
  • face_128.png
  • face_129.png
  • face_130.png
  • face_131.png
  • face_132.png
  • face_133.png
  • face_134.png
  • face_135.png
  • face_136.png
  • face_137.png
  • face_138.png
  • face_139.png
  • face_140.png
  • face_141.png
  • face_142.png
  • face_143.png
  • face_144.png
  • face_145.png
  • face_146.png
  • face_147.png
  • face_148.png
  • face_149.png
  • face_150.png
  • face_151.png
  • face_152.png
  • face_153.png
  • face_154.png
  • face_155.png
  • face_156.png
  • face_157.png
  • face_158.png
  • face_159.png
  • face_160.png
  • face_161.png
  • face_162.png
  • face_163.png
  • face_164.png
  • face_165.png
  • face_166.png
  • face_167.png
  • face_168.png
  • face_169.png
  • face_170.png
  • face_171.png
  • face_172.png
  • face_173.png
  • face_174.png
  • face_175.png
  • face_176.png
  • face_177.png
  • face_178.png
  • face_179.png
  • face_180.png
  • face_181.png
  • face_182.png
  • face_183.png
  • face_184.png
  • face_185.png
  • face_186.png
  • face_187.png
  • face_188.png
  • face_189.png
  • face_190.png
  • face_191.png
  • face_192.png
  • face_193.png
  • face_194.png
  • face_195.png
  • face_196.png
  • face_197.png
  • face_198.png
  • face_199.png
  • face_200.png
  • face_201.png
  • face_202.png
  • face_203.png
  • face_204.png
  • face_205.png
  • face_206.png
  • face_207.png
  • face_208.png
  • face_209.png
  • face_210.png
  • face_211.png
  • face_212.png
  • face_213.png
  • face_214.png
  • face_215.png
  • face_216.png
  • face_217.png
  • face_218.png
  • face_219.png
  • face_220.png
  • face_221.png
  • face_222.png
  • face_223.png
  • face_224.png
  • face_225.png
  • face_226.png
  • face_227.png
  • face_228.png
  • face_229.png
  • face_230.png
  • face_231.png
  • face_232.png
  • face_233.png
  • face_234.png
  • face_235.png
  • face_236.png
  • face_237.png
  • face_238.png
  • face_239.png
  • face_240.png
  • face_241.png
  • face_242.png
  • face_243.png
  • face_244.png
  • face_245.png
  • face_246.png
  • 001.png
  • 002.png
  • 003.png
  • 004.gif
  • 005.png
  • 006.png
  • 007.png
  • 008.gif
  • 009.gif
  • 010.gif
  • 011.png
  • 012.gif
  • 013.gif
  • 014.gif
  • 015.gif
  • 016.gif
  • 017.gif
  • 018.gif
  • 019.gif
  • 020.gif
  • 021.gif
  • 022.png
  • 023.gif
  • 024.png
  • 025.png
  • 026.gif
  • 027.gif
  • 028.gif
  • 029.gif
  • 030.gif
  • 031.png
  • 032.png
    发表评论
    已有 5 条评论