Php HTML相对URL以非标准方式运行

Php HTML相对URL以非标准方式运行,php,html,.htaccess,mod-rewrite,Php,Html,.htaccess,Mod Rewrite,我正在尝试将客户网站移动到新主机。 我移动了代码,但链接不起作用 目录结构是 /root /About Us /root/Contacts 代码具有以下格式: <a href="/about/"><span>About Us</span></a></li> 这不应该起作用,因为/about/中前面的斜杠不是标准的html,但它可以工作 要在本地服务器上快速运行,只需在头部添加一个标记 <base href="http:

我正在尝试将客户网站移动到新主机。 我移动了代码,但链接不起作用

目录结构是

/root /About Us  
/root/Contacts
代码具有以下格式:

<a href="/about/"><span>About Us</span></a></li>

这不应该起作用,因为/about/中前面的斜杠不是标准的html,但它可以工作


要在本地服务器上快速运行,只需在头部添加一个
标记

<base href="http://localhost/my_site_folder/" />

超链接的工作方式有:

  • (绝对)如果链接以协议(http://,https://)开始, 等等),您的浏览器尝试打开文本url

  • (根相对)如果链接以正斜杠开头,则将当前域前置到url。 (如果您在www.topcompanies.com上的任何地方,

    如果将站点移动到子文件夹,此样式url将失败

  • (相对)否则,链接将被视为相对于当前“文件夹”。如果您移动整个网站,此样式的url将正常工作-但是,如果您将.html文件移动到目录结构中的不同深度,它将停止正确链接


当您将
标记添加到头部时,它会告诉浏览器使用该url作为根相对url的基础,而不是普通的http根。

要在本地服务器上快速运行,只需将
标记添加到头部即可

<base href="http://localhost/my_site_folder/" />

超链接的工作方式有:

  • (绝对)如果链接以协议(http://,https://)开始, 等等),您的浏览器尝试打开文本url

  • (根相对)如果链接以正斜杠开头,则将当前域前置到url。 (如果您在www.topcompanies.com上的任何地方,

    如果将站点移动到子文件夹,此样式url将失败

  • (相对)否则,链接将被视为相对于当前“文件夹”。如果您移动整个网站,此样式的url将正常工作-但是,如果您将.html文件移动到目录结构中的不同深度,它将停止正确链接


当您在头部添加一个
标记时,它会告诉浏览器使用该url作为根相对url的基础,而不是普通的http根。

相对寻址就是它,与绝对地址相同。或者

  • 您需要对代码/html进行批量更改,以将HREF转换为正确的格式,或者
  • 您需要研究如何进行URI重写。在应用程序级别,这通常会使用
    .htaccess
    文件和模块来完成。如有必要,请将应用程序移动到单独的子域,然后使用基于HTTP\u HOST筛选的vhost配置或mod\u重写规则

另外,我已经添加了相关的标记。

相对寻址就是它,绝对寻址也是如此

  • 您需要对代码/html进行批量更改,以将HREF转换为正确的格式,或者
  • 您需要研究如何进行URI重写。在应用程序级别,这通常会使用
    .htaccess
    文件和模块来完成。如有必要,请将应用程序移动到单独的子域,然后使用基于HTTP\u HOST筛选的vhost配置或mod\u重写规则

另外,我已经添加了相关的标签。

这个问题很有意义,因为它们不是“相对”链接,而是“绝对”链接。我不知道你想描述什么,但如果你想将你的问题标记为
htaccess
文件,你至少应该提及或发布该文件的内容。事实上,我不明白这个问题是什么。它不应该工作吗?它不工作吗?这些是标准的绝对URL,而不是非标准的相对URL。我对此感到困惑链接系统在rackspace服务器上工作,但相同的链接代码在我的服务器上不工作。如果我从两台服务器上删除前面的斜杠,则只是有一个不同的“基本”起点(www document root)…这就是为什么它在一个服务器上工作,而在另一个服务器上不工作。换句话说,前导的
/
表示第二个服务器上的不同起点。这个问题很有意义,因为它们不是“相对”链接…它们是“绝对”链接。我不知道你想描述什么,但如果你想将你的问题标记为
htaccess
文件,你至少应该提及或发布该文件的内容。事实上,我不明白这个问题是什么。它不应该工作吗?它不工作吗?这些是标准的绝对URL,而不是非标准的相对URL。我对此感到困惑链接系统在rackspace服务器上工作,但相同的链接代码在我的服务器上不工作。如果我从两台服务器上删除前面的斜杠,则只是有一个不同的“基本”起点(www document root)…这就是为什么它在一台服务器上工作,而在另一台服务器上不工作。换句话说,前导的
/
代表第二台服务器上的不同起点。谢谢Sam,这非常有帮助。谢谢Sam,这非常有帮助。