在我的项目中,我使用干净的URL,所有请求都将转发到index.php。 在index.php中,我有一个routing-aprt,它检查switch / case-construct中的URL-Parameter并包含相应的站点。
但是包括正确的工具吗?或者我应该使用header()吗?
答案 0 :(得分:1)
我建议你使用一些简单的路由类,它将根据你的url + autoloader加载控制器,以包含控制器类。
答案 1 :(得分:1)
转发页链接使用此
<?php
header("location:index.php");
?>
答案 2 :(得分:1)
header用于操纵原始http标头。 I.E.标题(“位置:http://www.google.com”)
include用于包含和评估特定文件。换句话说,当前应用程序可以使用包含文件中的变量和函数。
所以,我相信你会想要一个包含你的意图。如果我理解正确的话。
答案 3 :(得分:1)
使用include
根据URL有条件地运行PHP代码。 header
用于响应的内容,例如将用户发送到另一个网址。
在最基本的级别,您可以在index.php中使用路由实现such as this:
if ($_GET['q']) {
// Break the request into it's path parts
$path_parts = explode('/', $_GET['q']);
$section = $path_parts[0];
}
else {
$section = 'home';
}
switch ($section) {
case 'home':
// For requests to the home page
require('home.html');
case 'about':
// For URLs like http://www.example.com/about
require('about.html');
break;
case 'login':
if (check_login()) {
header('Location: http://www.example.com/');
}
else {
require('login.html');
}
break;
case 'wiki':
// For URLs like http://www.example.com/wiki/Document
$page = empty($path_parts[1]) ? '' : $path_parts[1];
require('wiki.php');
break;
default:
// Unexpected page requests should get a 404
header("HTTP/1.0 404 Not Found");
include('error.html');
break;
}