很抱歉提出复杂的问题。我有一个网站,可以从 MySQL 数据库中读取内容来获取视频信息,就像 YouTube 一样。
我有 7 列:id、title、desc、url、date、whosadded、views。
我想做的是将 url 从 /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。
我卡在这一点上了。
最佳答案
你读过整篇文章吗? ForceType
不会神奇地为您转换 URL...它只是强制将文件作为特定类型提供服务——因此您的 .HTML URL 可以解释为 PHP。
您的视频是否存储在数据库中?你用身份证把他们拉起来?在这种情况下,您可以在表中添加一个额外的列,通常称为“slug”,并在其中存储“艺术家-歌曲-音乐-视频”的值——该列必须是唯一的。如果您认为您可能有两个名称相同的页面,请在 URL 中同时使用 ID 和 slug(就像这个网站是如何做到的 -- videos/5/artist-song-music-video
例如)。
然后,您实际要做的是将 url -- /artist-song-music-video.html
重写为 /video.php?page=artist-song-music-video
或类似的东西。然后在您的 index.php
中,您通常有一个“路由器”,它接受 $_GET['page']
,在数据库中查找该 slug,并显示正确的内容.
我不记得像那样翻译 URL 的确切 mod_rewrite
规则,但网上有很多教程。谷歌一下。
我突然想到 artist
和 song
可能是变量。在这种情况下,将“slug”替换为您可能存在的两个列“artist”和“song”,然后以这种方式查找。只需删除“-music-video.html”部分即可。我真的不知道你的计划是什么,所以我不能多说。
关于php - 如何使用 htaccess 从 URL 中删除 ID 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3383381/