我有一个包含电影的数据库,每个视频都有 ID , TITLE 和年。 我想为每个人提供友好网址'。 我知道我必须使用 mod_rewrite, 如何动态完成?
最近我通过添加类似的文件来做到这一点 RewriteRule movie-title-year movie.php?id = 17 在文件的末尾 - 当我通过表单添加电影时。
但这不是一个好方法。
我希望以某种方式自动生成每部电影的/ movie-title-year。
抱歉我的英文。
答案 0 :(得分:0)
如果没有,或者最少使用mod_rewrite,我将如何做到。
如果不了解更多有关您的设置的话,这将需要一些工作,很难说。
首先,我会更改数据库中的架构。
备份表格(称之为movies
,因为我不知道您的名字) - 始终进行备份。
输出表架构:
SHOW CREATE TABLE movies
修改表架构
添加我们的新列slug
为列添加唯一索引
将表格名称更改为' tmp_movies'
编写PHP脚本以将记录从旧表复制到新表 补丁丢失slug(可能是标题小写,代替空格) 必须考虑可能的重复slu ..
DROP the orignal table,并将tmp表重命名为movie
现在您的数据库已修复。
更改您查找页面的方式,从使用id等到使用slug。
更改添加新电影的方式以创建slu ..
添加一个简单的重写规则来替换您查找电影的新方式。
喜欢(我只是猜测htaccess)
//type1 (URI)
www.example.com/index.php/movies/slug //typical url
^movies/([^/]*) index.php/movies/$1 [L] //htaccess
www.example.com/movies/slug //re-written url
-------------------------------------------------------------
//type2 (Query)
www.example.com/index.php?page=movies&slug=slug //typical url
^movies/([^/]*) /index.php?page=movies&slug=$1 [L] //htaccess
www.example.com/movies/slug //re-written url
现在查看您的问题,您的网址中的ID可能不会更多。喜欢:
www.example.com/movies/index.php?movie_id=2034
你需要一些具有更多吸引力的东西
www.example.com/movies/murder-on-the-orient-express
从这个movie_id=2034
到murder-on-the-orient-express
的唯一方法是手动重写每一个(这很荒谬)或添加你缺少的东西。
希望有所帮助。