【问题标题】:How to avoid broken links in common header file如何避免常见头文件中的断开链接
【发布时间】:2012-04-29 04:25:04
【问题描述】:

我有一个通用的 header.php,几乎包含在网站的每个页面中。我在 header.php 文件中有指向不同资源的相对链接。一旦我将它包含在位于根文件夹下不同子文件夹中的其他页面中,一些链接就会断开。我可以将 header.php 中的所有链接设为绝对链接。现在又出现了另一个问题:如果您将应用程序移动到另一个域并将其放在 wwwroot 下的某个位置,那么绝对链接将不起作用。我无法在 PHP 中找到一种方法来提取作为此应用程序根的 URL 部分。我最终为应用程序根定义了一个变量,并在 header.php 中的每个链接前面加上这个变量。这样,当这个应用程序从一个地方移动到另一个地方时,我只需要更改一个变量。

我想知道是否有其他更好的方法来处理这种情况。

非常感谢您的反馈。

编辑:希望收到更多反馈。

【问题讨论】:

  • 在 PHP 中最常见的处理方法是使用 mod_rewrite 和朋友通过基本控制器发送所有请求。 PHP 处理这类事情与 Java 略有不同,因为在 Java 中,您经常使用嵌入式服务器或直接与请求处理程序应用程序通信的服务器。 PHP,主要是围绕 CGI 设计的,通常不会以这种方式工作。通常,涉及路径解析的请求部分由 Web 服务器完成,并且在 PHP 启动时已完成 - 服务器使用它来查找正确的脚本。

标签: php contextpath


【解决方案1】:

你写它是一个普通的 header.php 文件,就像中心变量一样,你可以使用<base> HTML 元素——但这仅限于 HTML。

您可以自己创建一个映射函数,该函数能够将绝对 URLS 解析为请求 URI,或者能够将相对 URLS 解析为它们所来自的上下文,以便它们可以再次绝对相对于请求 URI 映射.

然后您可以实现一个输出过滤器,它自己处理 URI,您可以为特殊处理添加一些特殊前缀。

【讨论】:

    猜你喜欢
    • 2013-01-29
    • 1970-01-01
    • 2019-08-04
    • 2012-04-30
    • 2011-07-31
    • 2012-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多