如何在url中管理长整数值

时间:2014-08-08 21:07:29

标签: php .htaccess

我在网址中有一个id参数,它看起来像

http://localhost/project/index.php?id=20234532

问题是这个数字可以在几天内增长到更大的数字。

首先想到:如果有任何方法可以使用htaccess从url中删除id值那么那很好。但不确定。

第二个想法:如果值20234532可以用更短的值编码然后再解码。

我现在无法想到任何其他可能的想法。我也不能使用post方法,因为这个id将永远存在于url中。

道歉,如果我把问题放在错误的位置,显然这不是一个问题,而是寻求解决方案。

1 个答案:

答案 0 :(得分:0)

你可以在这里做很多事情。您可以将其转换为base 32,并使用mod_rewrite:

使URL更短
$id = (whatever comes out of database)
$shortID = base_convert($id,10,32);

然后使用$shortID制作网址:http://example.com/$shortID,也许看起来像http://example.com/a5pqnf3k(ID = 349832985716)。

然后在你的htaccess文件中:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ /index.php?shortID=$1 [L,QSA]

然后当你检查" shortID"你只需将其反转即可获得长ID:

$shortID = $_GET['shortID'];
$id = base_convert($shortID,32,10);