我希望每个用户请求(url)都能在index.php(或其他文件)中处理。我需要处理这些请求以检查是否存在请求的页面(在数据库中),然后构建页面。使用这种方法,我可以将内容存储在服务器本身,而不是存储在数据库中。我怀疑Joomla cms这样工作。我是对的?你可以发布示例代码吗?
(用户必须看到他在浏览器的地址栏中输入的完整网址,当他点击浏览器中的向后箭头时,他必须获取上一页 - 我想我不能使用重定向和多个请求)
答案 0 :(得分:3)
有一种名为Front Controller Pattern的设计模式,它提供了一个集中的入口点。
要在PHP中实现这一点,您可以使用任何MVC框架,如Codeignitor,默认情况下在FCP中工作。
要在PHP中实现此目的,首先要修改.htaccess。
RewriteEngine On
RewriteRule . /index.php [L]
在你的index.php中,有一个像这样的逻辑:
index.php (为了理解而简化的代码)
<?php
if ($_SERVER['REQUEST_URI'] == '/about') {
// Logic for printing About
getContent('about');
} elseif ($_SERVER['REQUEST_URI'] == '/products') {
getContent('products');
} else {
// Logic for printing 404 page
}
function getContent($key) {
// load value based on $key
//print content.
}
答案 1 :(得分:0)
在.htaccess
中试试Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?params=$1 [NC]