我正在尝试创建自己的"收缩链接"网站,例如:www.goo.gl
和adf.ly
但这个网站只为我的帮助,不为公众,
因此,当您缩小 goo.gl 上的链接时,您会看到它为您提供链接e.g goo.gl/exapmle_value
example_value是传入数据库的值,然后 gog.gl 重定向到真实网站。
所以我想要同样的想法,
我正在使用PHP和MySql,我尝试缩小链接,并将其输出与table_id,
e.g www.mydomin.com/1 , www.mydomin.com/2 , www.mydomin.com/3
我如何通过使用简单的PHP而不是任何PHP框架来做到这一点?
这个问题需要分为两部分。
首先,PHP 脚本获取 URL 的"收缩代码",即最后一个正斜杠字符之后的位:
www.mydomin.com/asdfasdfasfd
^^^^^^^^^^^^ This bit is the "shrink code"
您可以使用 $_SERVER['REQUEST_URI']
获取页面的 URL,那么您需要做的就是使用 strrpos 和 substr 获取最后一个斜杠后的文本:
$url = $_SERVER['REQUEST_URI'];
// Last position of the slash character
$lastSlashPos = strrpos($url, "/");
// Get the text after the last character
$shrinkCode = substr($url, $lastSlashPos);
print "Great, now I need to look up $shrinkCode in MySQL."
这将为您提供URL的最后一部分。
单独地,您需要让您的网络服务器为网站上所有可能的 URL 显示相同的 PHP 页面。
如果您使用的是 apache,一种作弊方法是将此页面设置为您的自定义 404 页面。因此,每当用户使用缩小的URL访问您的网站时,这将指向不存在的路径。
如果路径不存在,apache 将显示您的自定义错误 404 页面。如果此页面包含上述代码,那么您将能够找到包含"收缩代码"的URL后缀。
如果您使用的是虚拟主机,那么它们通常有自己的自定义UI来选择错误页面。只需将PHP脚本的路径放在这里即可。如果您自己托管和配置 apache,请参阅手册。