将基于参数的URL转换为漂亮的URL

时间:2012-02-11 10:54:09

标签: php jquery url-rewriting nginx friendly-url

目前我的网址格式为:

http://www.domain.com/members/username/

这很好。

但是,每个用户可能会有多个与其帐户相关联的“歌曲”。

个别歌曲的网址如下:

http://www.domain.com/members/username/song/?songid=2

最后的数字显然是指MySQL数据库中的ID。

使用jQuery / javascript,从URL收集ID,然后查询数据库并呈现相关的歌曲/页面。

我想将这些网址更改为以下格式:

http://www.domain.com/members/username/song/songname/

但我完全不知道如何去做。我一直在做很多关于这个问题的阅读,但没有发现任何与我的情况相关的东西。

为了进一步加剧挑战,歌曲名称并不总是独一无二的。例如,如果我们将歌曲名称'hello'成像,则很可能在数据库中可能存在具有相同名称的另一首歌曲,尽管歌曲ID不同。

鉴于您在此问题中收到的限制信息,我非常满意更广泛的答案,描述了采取的方法。

一般信息:

  • Apache / Nginx代理
  • 后端:PHP
  • jQuery / Javascript前端

2 个答案:

答案 0 :(得分:1)

Simple Apache rewrites,在主httpd.conf文件中,或者如果你没有访问主配置文件的htaccess文件就足够了

答案 1 :(得分:1)

我不知道你如何在数据库中存储歌曲,但想法是:

使用URL重写将成员/用户名/歌曲/歌曲名/重写为song.php?user = username& song = songname。这里有很多教程,或者尝试使用URL rewrite-generator tool

在song.php中,获取这些GET值。执行歌曲名称和用户名匹配的MySQL查询。输出结果。

注意:要使用户只能存储一首具有给定名称的歌曲,这是一项义务。此外,必须存储存储用户的名称。否则这是不可能的。