清洁网址和路由器:加载新网站 - >使用include()或header()?

时间:2014-08-17 10:37:17

标签: php header include router clean-urls

我有一个关于如何加载新网站的问题。

例如:

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

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

&#34;家用&#34;是由路由器处理的参数。路由器检查switch / case-construct此参数并调用controller-method。这个控制器方法调用一个模型方法,该方法可能会向控制器方法返回一点点。最后,控制器方法必须打开&#34;主页(home.php)。

但这样做的正常和好方法是什么?使用include("blabla/home.php");或使用header("blabla/home.php);

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

如何解决这个问题,URL可能不是最新的?
示例: 上面的主页链接位于profile.php。当您进入profile.php时,您可以在最后的URL&#34;个人资料&#34;中看到。如果您点击该主页链接并使用include(),那么当您现在看到主站点时,您仍然拥有个人资料网址。

1 个答案:

答案 0 :(得分:1)

根据HTTP请求和响应进行思考。如果您请求网址/profile,则响应应为个人资料页面。如果您请求URL /home,则响应应该是某种主页。

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

  1. 客户请求/profile
  2. 服务器以标头Location: /home
  3. 响应
  4. 客户请求/home
  5. 服务器以主页回复
  6. 另一方面,

    include只是一个加载另一个文件内容的PHP内部机制。它与HTTP响应无关,与讨论无关。

    您使用应在网址上显示的内容进行回复。您可以将客户端重定向到具有Location标头的其他URL。就是这样。