作者F23ko ( http://f23ko.com )
看板Web_Design
标题[闲聊] f23.tw 缩网址
时间Mon Oct 7 19:54:02 2013
花了点时间,写了个缩网址的网站
http://f23.tw/
虽然已经有0rz、ppt、is.gd、goo.gl、tinyurl这麽一堆的缩网址网站
但看起来好像很简单的样子
就想写一个来玩玩看,当作练功
然後我试了之後发现.....
其实也真的不难,虽然有遇到一些障碍
但还在稍微花点力气就可以解决的范围之类 (Rewriterule、并行之类的)
就是需要花时间去做就是了
简单的来介绍一些与其他缩网址不同的功能:
1.支援自订义短网址:你可以为自己的短网址命名,例如说….
http://f23.tw/介绍
你可以选择为短网址命名,而不是由程式自动产生流水字串,你也可以用中文或是日文
等其他语言为短网址命名,不过这些非英文文字将被转换URL边码
2.提供保留副档名的功能
举例来说,当你贴了一张图之後,你可以让网址看起来像是这样
http://f23.tw/FFFF.jpg
当然,原本的
http://f23.tw/FFFF 也是可以使用的
3.提供详细的流量统计,以及使用者追踪
如范例页面
http://f23.tw/介绍/u (网址後加 /u 为使用者追踪)
http://f23.tw/介绍/i (网址後加 /i 为点击统计)
=================================================
题外话,不知道正在看文章的你有没有在使用噗浪?
其实噗浪是我完成这个网站的最大动力.....
噗浪有个特性,使用者河道的网址是长这样
http://www.plurk.com/DoTaMoonNight
後面那一串就是使用者的ID,一般而言,都是使用者本人
就是,我常常在看自己网站的记录的时候
看见一串来自
http://www.plurk.com/XXXXX 之类的referer
点下去就可以看到是谁点噗浪上的连结,连到我的网站
另外一点,就是当使用者贴图片
也就是网址後面有.jpg .gif之类的网址的时候
噗浪会很自动的把它包进<img>标签里面
然後,当使用者开启河道的时候,图片自然而然就被开起来了
........
.....
...
慢着,在这边好像有点怪怪的
不觉得好像有点问题吗?
1. 当使用者点连结的时候,连结上会夹带使用者讯息
2. 当使用者打开河道,会自动连结图片
1+2 不就是「
我放个图片连结上去,就可以知道噗浪上的谁在什麽时候上线」了吗?
还记的有时候收到e-mail,软体都会问「要不要打开图片」吧?
那就是为了防止被别人使用类似的方式,来判断e-amil是否有效
虽然我觉得噗浪这样,并不算是多重大的泄漏隐私的BUG或漏洞
但总觉得这样蛮有趣的
所以,就做了这样一个网站
也就是说你只要照着下面的步骤做,就可以知道在你的朋友或是粉丝中
「谁」,「在什麽时候」,打开(或刷新)河道,看见你贴的图片
1.找张图片的网址
2.用f23.tw缩网址
并开启「使用统计流量功能」「纪录浏览者的详细资料」这两项
3.贴到噗浪上,记得网址後要加上 .jpg 之类的
4.打开 f23.tw/XXXXX/u 的页面,然後挂着
好了,接下来每隔十几二十秒,页面就会自动刷新,帮你把点击网址的人找出来了
仔细看「来源网站」那一项,如果是 www.plurk.com 的话,就是噗浪的使用者
你可以右边的搜寻栏打上 plurk 这样就只会显示来自噗浪的访客
--
◢
乡民啊!乡民! 请告诉我谁是最纯洁的人!
◢█ │
PTT │
██ 乡
:就是你! F23ko! │
█◤ ╯
◤ ﹨(╯▽╰ )∕
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.35.18.75
1F:推 wannawanna:推 不过自订短网址应该会很容易冲突? 10/07 20:14
※ 编辑: F23ko 来自: 114.35.18.75 (10/07 20:51)
2F:→ F23ko:自订义短网址就是看看谁先抢先赢了 10/07 20:51
3F:→ danny8376:纯粹好奇... nginx有没有开cache呢OWO? 10/08 02:09
4F:→ danny8376:虽然现阶段是不会发生 也不一定会发生 10/08 02:10
5F:→ danny8376:不过要是流量大的话 这种近乎静态的内容每次都要解析PHP 10/08 02:10
6F:→ danny8376:PHP可以把记忆体吃到炸掉的www 10/08 02:10
7F:→ F23ko:catche只有针对图片跟js那些东西开而已,PHP的我还在研究中 10/08 02:15
8F:→ F23ko:我几天前才第一次碰nginx的啊... XD 10/08 02:16
9F:→ F23ko:不对,不能开cache,因为每个php会把造访者的资料给log下来 10/08 02:22
10F:→ F23ko:我记得fast cgi好像不会每次都解析php的样子,可能会好一点 10/08 02:23
11F:→ F23ko:说到 nginx.. 把APACHE换成nginx的时候,rewriterule要改写 10/08 02:24
12F:→ F23ko:好多地方orz.... 10/08 02:25
13F:→ danny8376:对齁 忘了有造访纪录XD 不过解析效率不是问题 10/08 03:53
14F:→ danny8376:主要问题在於PHP是很可怕的memory hungry啊www 10/08 03:54
15F:→ danny8376:PHP最基本执行就快1M的记忆体了www 10/08 03:59
16F:→ danny8376:想玩的话可以搭cache 然後nginx写lua 10/08 04:02
17F:→ danny8376:从unix socket送dgram给另外的後端做统计? 10/08 04:03
18F:→ danny8376:(好像跳太多了XDD 用C++挂lib写fastcgi应该也不错?) 10/08 04:04
19F:→ danny8376:不过这也是1k req/min之类的附载才有可能要考虑啦XDD 10/08 04:05
20F:→ danny8376:是说nginx的rewrite不难写啊 有需要还可以直接写if 10/08 04:06
21F:→ danny8376:相当程度上比apache设定来得直观www 10/08 04:07
22F:→ danny8376:比起rewrite而言 倒是万恶的.htacess 10/08 04:08
23F:→ danny8376:害我改成nginx的时候到处找档案 合并到conf里面... 10/08 04:08
24F:→ danny8376:还有XSS的测试耶XDD 10/08 04:18
25F:推 hit1205:副档名很实用 XD 有些地方没副档名就没预览涂了... 10/08 06:32
26F:→ hit1205:噗浪和 Web PTT 都是 10/08 06:33
27F:→ hit1205: 图 10/08 06:33
28F:推 danny8376:支援副档名真的是很实用www 10/08 07:14
29F:推 NaoGaTsu:超有意思! 10/09 19:13
30F:→ kovenkoven:副档名的功能似乎是抓第一个.之後的字串都过滤掉? 10/11 14:57
差不多了
ngine 那边是这样写的
无命令的状况
location ~ "^/[^/\.]{3,}(\.[A-Za-z0-9]*)?/?$"
有命令的状况 (後面加上 /v /d /i /u ) 之类的
location ~ "^/[^/\.]{3,}(\.[A-Za-z0-9]*)?/[A-Za-z0-9]+"
所以,要把 html 假装成 jpg 也是OK的
※ 编辑: F23ko 来自: 114.35.18.75 (10/11 15:27)