我确定我做错了,并且有更好的方法。
我刚刚完成了一个美食博客网站。帖子被上传到数据库中。当需要时,使用SELECT语句中的信息生成HTML文件。
基本上,我并不认为创建新的HTML文件并以这种方式存储页面是明智的,而是在运行中创建它们。
这是我(可怕)的方法:
用户点击链接或输入网址
网址结构如下:www.website.com/name-of-post
没有名为name-of-post.php的HTML文件,因此重定向时出现404错误。
在该页面上,我会查看帖子的名称是否'存在于数据库中。
如果是,请生成文件。否则,显示404错误页面。
这种方法也意味着这些页面没有被谷歌索引,因此人们将无法以这种方式搜索食谱。
我知道这不对。那么有更好的方法吗?
答案 0 :(得分:2)
嗯,你刚刚发现了PHP 20年前发明的原因。它是一个模板引擎,可让您动态生成网页。
在数据库中存储内容通常很好。大多数内容只是数据。但是,使用该内容构建网页是完全不同的事情。既不需要在文件系统上生成实际的.html文件,也不需要在数据库中存储.html文件(完整地)。
templating in PHP的概念是您创建与内容分开的格式,以便始终可以更改格式,并且无论如何都可以插入内容。
例如,这是一个非常简单的模板。
<h1>Hello <?=$name?></h1>
<p>Today is <?=date('l F jS, Y')?>.</p>
无论内容如何,此页面的格式始终相同,这些变量是我们可以轻松地从数据库插入模板的变量。你的问题也不例外。您可以存储模板,编写为简单的HTML和PHP代码,只需插入内容和一些变量(可能由数据库中的数据填充)。
动态创建URL的概念相对类似。您可以告诉您的Web服务器将所有请求重定向到主要PHP脚本(通常称为front-controller),如index.php,并让该脚本检查数据库中的请求URI(使用类似{{{{ 1}},例如)并根据该信息,您可以从数据库中提取所需的内容,使用模板生成输出,然后输出客户端的页面。