数字与AlphaNumeric URL

时间:2012-03-17 11:09:23

标签: php apache url

有什么区别......

http://mysite.com/12345http://mysite.com/an6

我很想知道因为数字处理所有内容会更容易,我仍然认为没有理由从数字转换为字母数字。

2 个答案:

答案 0 :(得分:2)

基本上在你给出的两个例子中没有太大区别。除了您可以包含more非信息字符的事实。 URL中没有(人类可读的)信息......他们可能会持有:

  • 文章ID
  • 用户ID
  • 主题ID
  • 错误页面
  • 等...

当您开始在这些网址中嵌入一些有用的信息时,差异就会发挥作用...例如,本网站上的网址 - 特别是您的网站及其地址 -

https://stackoverflow.com/questions/9749505/numeric-vs-alphanumeric-url

那么我们可以从这里看到什么(除了它的Stack Overflow链接,显然是解决你的编程问题的正确来源;)

  1. 这是一个问题的链接 - stackoverflow.com/questions/
  2. 问题的ID是9749505 - stackoverflow.com/questions/9749505
  3. 我们可以看到问题questions/9749505/numeric-vs-alphanumeric-url
  4. 标题的预览

    要获取这些“友好网址”,可以使用.htaccess文件重定向网址之间的请求。

    以下是.htaccess文件可以完成的简单示例

    RewriteCond $1 ^questions/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^questions/(.*)$ getQuestion.php?id=$1 [L]
    

    这里发生的是这个 - 用户和浏览器看到的实际网址是:
    example.com/questions/12345
    但是处理请求的实际脚本是getQuestion.php,它会传递一个从原始URL(特别是数字)中提取的变量。然后脚本将检索内容并显示该内容,但该网址与/questions/12345保持相同的网址。

    实际上,getQuestion.php文件将处理所有问题请求。

    所以你看,字母数字和数字网址之间没有真正的区别 - 不同之处在于你开始在其中嵌入有用的信息,只是简单地为用户阅读他们的名字(以及作为开发人员的信息)。

答案 1 :(得分:2)

在网址中使用字母a到z和数字0到9的原因是你可以用更少的字符组合更多的组合。

例如,如果您只有3个字符可用于您的产品ID,则使用0到9将为您提供1000个组合(000到999),即10 ^ 3(10个字符,您可以使用 - 0,1, 2 ... 9 - 以3的力量提升,最后一根弦的长度。)

但是如果使用0到9和a到z,则可以存储36 ^ 3个唯一ID。 (26个字母+10个数字),以3的幂为46656。如果你还要区分小写和大写,总数将是(26 + 26 + 10)^ 3 = 238328。只需3个字符

人们使用字母数字字符而不是数字ID的原因是他们没有搜索引擎优化的好处,所以最好是他们的长度最短,以便可以包含更多相关的单词。

其他好处是针对像twitter这样的社交网站,你的messaje有一个字符限制,所以使用严格的数字ID会效率低下。

可能的缺点是,在使用数字ID而不是文本ID时,SQL查询往往更快,但有办法避免这种情况。