2015-05-04 77 views
0

我有一个需要,我需要创建链接到实际URL的自定义网址。例如,如果实际URL是www.google.com那么此URL将显示为www.exampleurls.com/something/whater。当我点击这个网址时,它将被重定向到www.google.com。这些网址也应该是独立的,因此href无用。链接自定义URL与实际URL没有.htaccess

由于可访问性,我无法配置.htaccess。 :(是否有可能仅受数据库和PHP

例如:?tinyurls,但我不想微小URL

+0

尝试“编码”或“解码”网址 –

+0

假设您有很多这样的网址,您可以在数据库中存储新网址和原始网址,并且每次都为新网址进行查找,将服务器逻辑中的标题重定向到原始网址。如果你只有几个,那么你可以在一个PHP脚本中对它们进行硬编码。这两种方式都使用您网站上的404错误处理程序页面。 – Drakes

+0

我能理解你的域名是** exampleurls.com **吗? – SaidbakR

回答

0

1选项;

URL编码与任何编码方法,即base64base_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缩短器,在数据库中保留短哈希等等。