如何使用htaccess从URL中删除ID变量?

时间:2010-08-01 19:15:08

标签: php apache .htaccess seo

我很抱歉复杂的问题。我有一个网站,从MySQL数据库中读取内容,就像YouTube一样获取视频信息。

我有7列:id,title,desc,url,date,whosadded,views。

我想要做的是将网址从/video.php?id=X重写为/title-music-video.html

有(http://www.devarticles.com/c/a/Apache/Using-ForceType-For-Nicer-Page-URLs/1/)一篇文章,但htaccess的ForceType对我不起作用。

我知道有一种方法可以为优化链接添加新列到表格,但我不想在添加带有表单的新记录时指定每个seo URL。

我被困在这一点上。

1 个答案:

答案 0 :(得分:1)

你读过整篇文章吗? ForceType不会为您神奇地转换网址...它只是强制将文件作为特定类型提供 - 因此您的.HTML网址可以解释为PHP。

您的视频是否存储在数据库中?你使用ID来提升它们?在这种情况下,你可以做的是在表格中添加一个额外的列,通常称为“slug”,并在其中存储“artist-song-music-video”的值 - 此列必须是唯一的。如果您认为可能有两个具有相同名称的页面,请同时使用URL中的ID和slug(例如,此站点的工作方式 - 例如videos/5/artist-song-music-video)。

然后,你实际做的是将网址 - /artist-song-music-video.html重写为/video.php?page=artist-song-music-video或类似的东西。然后在您的index.php中,您通常会有一个“路由器”,它需要$_GET['page'],在数据库中查找该子弹,并显示正确的内容。

我不记得像这样翻译网址的确切mod_rewrite规则,但网上有很多教程。谷歌吧。


向我提出artistsong可能是变量。在这种情况下,将“slug”替换为两个可能存在的列“艺术家”和“歌曲”,并以这种方式查找。只需破解“-music-video.html”部分。我真的不知道你的计划是什么,所以我不能多说。