Plu*_*uto 5 php frameworks permalinks content-management-system
我正在为我的个人项目掀起一个非常基本的CMS.对我自己的教育来说,这和任何事情一样重要.我有一个问题是如何在没有文件扩展的情况下实现url/permalink.我理解使用get变量从数据库中提取数据,但是如何将其转换为www.url.com/posttitle而不是像www.url.com/?posttitle='blablabla这样的东西.
同样在一个稍微不同的主题上,任何人都可以指出我在EASY的方向上使用框架来开发处理会员资格和成员列表的网站,例如craigslist.
我目前在wordpress中开发并且非常有能力,但对基础级别的OOPHP和自定义CMS开发不太熟悉.
在此先感谢您的任何帮助或建议.
您将使用.htaccess文件将所有请求传递给前端控制器(通常只是一个index.php脚本),然后该脚本将传入请求与数据库中的记录进行匹配.
例如,如果你有一个叫做数据库表pages有四列:id,title,slug和content,以下将是一个简单的实现...
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ index.php/$1 [NC,L]
Run Code Online (Sandbox Code Playgroud)
这告诉Apache接受所有不是文件或方向的请求,并将它们发送到index.php.
您的index.php可能如下所示:
<?php
// Take request URI
// Would be something like 'your-slug'
$request = trim($_SERVER['REQUEST_URI'], '/');
// Set up database connection and attempt to match slug
$sql = "SELECT * FROM pages WHERE slug = ? LIMIT 1";
$smt = $db->prepare($sql);
$smt->execute(array($request));
$page = $smt->fetchObject();
if (! $page) {
// Page was not found matching slug
header('HTTP/1.1 404 Not Found');
exit;
}
// Display matching page in a template
Run Code Online (Sandbox Code Playgroud)
从这里开始,您可以在此基础上进行构建.