1选项;
URL编码与任何编码方法,即base64
, base_convert
,并保存在数据库中是固定在你的散列即CHAR(8)
场
function foo($url) {
// yields 7-8 chars, sprintf will fix it to 8 chars padding 0 to the left
return sprintf("%'08s", base_convert(crc32($url), 16, 36));
// or use md5 that more reliable for collision issue
// yields 24-25 chars, sprintf will fix it to 25 chars padding 0 to the left
// return sprintf("%'025s", base_convert(md5($url), 16, 36));
}
<a href="/redirect/0a5sz8yf">Go to Google!</a>
// redirect file
result = get_url_from_db(hash);
if (result.url == null) {
header('HTTP/1.1 404 Not Found');
} else {
header('Location: '. result.url, true, 301);
}
2 - 选项。
使用正确的URL缩短器,在数据库中保留短哈希等等。
尝试“编码”或“解码”网址 –
假设您有很多这样的网址,您可以在数据库中存储新网址和原始网址,并且每次都为新网址进行查找,将服务器逻辑中的标题重定向到原始网址。如果你只有几个,那么你可以在一个PHP脚本中对它们进行硬编码。这两种方式都使用您网站上的404错误处理程序页面。 – Drakes
我能理解你的域名是** exampleurls.com **吗? – SaidbakR