【问题标题】:Absolute URL Path for PHP WebsitePHP 网站的绝对 URL 路径
【发布时间】:2010-06-14 07:37:39
【问题描述】:

我在一个 CMS 网站上工作。我在页脚文件中提供了一个链接,例如 blogs.php。此页面位于“http://www.example.com/new_cms/blogs.php”之类的根目录下

当我移动到“http://www.example.com/new_cms/forums”之类的其他文件链接时,页脚链接更改为“http://www.example.com/new_cms/forums/blogs.php”,但 blogs.php 页面位于路径“http://www.example.com/new_cms/”。我尝试了不同的 $_SERVER[] 变量,但没有获得上述路径“http://www.example.com/new_cms/”表示服务器名称以及项目当前运行所在的目录。

任何知道如何完成它的人都会有很大的帮助。

谢谢

【问题讨论】:

  • 能否提供您用于显示链接的代码?您可以将其编辑为我们的问题。

标签: php url content-management-system


【解决方案1】:

这可能是因为您的链接中有一个相对 url,如下所示:

<a href="blogs.php">Blogs</a>

所以它会在当前目录中查找 blogs.php 文件。

如果您希望该链接指向 new_cms 文件夹中的 blogs.php 文件,则必须使用如下链接:

<a href="/new_cms/blogs.php">Blogs</a>

【讨论】:

  • 感谢朋友们的所有帮助 :) 我想我必须使用我的 www 根站点目录中目录的静态路径。
【解决方案2】:

您可以使用绝对网址或尝试使用条件重写您的网址。

【讨论】:

    【解决方案3】:

    您可以从$_SERVER['SERVER_NAME'] 获取服务器名称,这是在服务器/虚拟主机配置中指定的规范服务器名称。除此之外,$_SERVER['HTTP_HOST'] 为您提供HTTP request header field Host 中指定的主机。一般来说,这两个值是相同的。但由于两者都可以通过用户输入进行操作(请参阅Chris Shiflett’s SERVER_NAME Versus HTTP_HOST),因此在使用它们时需要小心。

    至于路径,您可能需要自己指定基本 URL 路径。因为如果考虑 URL 重写技术,物理路径(文件系统路径)不需要与逻辑路径(URL 路径)相同。所以你不能从请求的 URL 路径、脚本文件路径和文档根目录中推导出逻辑基本路径。

    【讨论】:

      猜你喜欢
      • 2012-08-27
      • 2011-11-15
      • 2015-11-15
      • 1970-01-01
      • 2021-10-18
      • 1970-01-01
      • 1970-01-01
      • 2016-07-23
      • 1970-01-01
      相关资源
      最近更新 更多