Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 清除URL和路由器:加载新站点->;是否使用include()或header()?_Php_Header_Include_Router_Clean Urls - Fatal编程技术网

Php 清除URL和路由器:加载新站点->;是否使用include()或header()?

Php 清除URL和路由器:加载新站点->;是否使用include()或header()?,php,header,include,router,clean-urls,Php,Header,Include,Router,Clean Urls,我有一个关于如何加载新站点的一般问题 例如: 在我的网站上有这样一个链接: <a href="home">Home</a> “home”是由路由器处理的参数。路由器检入交换机/机箱构造此参数并调用控制器方法。此控制器方法调用一个模型方法,该方法可能会向控制器方法返回一点点。最后,控制器方法必须“打开”主站点(home.php) 但是,什么是正常和良好的方式来做到这一点?使用include(“blabla/home.php”)或使用标题(“blabla/home.ph

我有一个关于如何加载新站点的一般问题

例如:

在我的网站上有这样一个链接:

<a href="home">Home</a>

“home”是由路由器处理的参数。路由器检入交换机/机箱构造此参数并调用控制器方法。此控制器方法调用一个模型方法,该方法可能会向控制器方法返回一点点。最后,控制器方法必须“打开”主站点(home.php)

但是,什么是正常和良好的方式来做到这一点?使用
include(“blabla/home.php”)
或使用
标题(“blabla/home.php”);

如果你说
include()
,那么我的问题是:

您如何解决这个问题,
URL
可能不是最新的?
示例:
上面的主页链接位于
profile.php
中。当您位于
profile.php
中时,您可以在
URL
中的“profile”结尾处看到。如果您单击该主页链接并使用
include()
,那么当您现在看到主页时,您仍然拥有配置文件URL。

考虑HTTP请求和响应。如果您请求URL
/profile
,响应应该是配置文件页面。如果您请求URL
/home
,响应应该是某种主页

header('Location:…')
是一种HTTP响应机制,用于指示客户端请求不同的URL。它是:

  • 客户端请求
    /profile
  • 服务器响应标题
    位置:/home
  • 客户端请求
    /home
  • 服务器用主页进行响应
  • 另一方面,
    include
    只是一个PHP内部机制,用于加载另一个文件的内容。它与HTTP响应本身无关,与讨论无关

    您可以使用在URL上应该可见的内容进行响应。您可以使用
    位置
    标题将客户端重定向到其他URL。仅此而已