我正在尝试将客户网站移至新主机。 我移动了代码,但链接不起作用。
目录结构是
/root /About Us
/root/Contacts
代码的格式为
<a href="/about/"><span>About Us</span></a></li>
这不应该起作用,因为/ about /中的前面的斜杠不是标准的html,但它可以工作。
<a href="/about/"
应为<a href="about/"
所有hmtl都包含在index.php文件中。
原始站点托管在rackspace上,我正在我的本地apache服务器上测试代码。
是否有一些配置文件改变了相对寻址的工作方式。
答案 0 :(得分:4)
要快速使其在本地服务器上运行,只需在头部添加<base>
标记即可。
<base href="http://localhost/my_site_folder/" />
超链接的工作方式有以下几种:
(绝对)如果链接以协议开头(http://,https://, 等),您的浏览器尝试打开文字网址。
(root-relative)如果链接以正斜杠开头,则它会将当前域添加到url。
(如果您在www.topcompanies.com的任何地方,<a href="/about">
将带您到http://www.topcompanies.com/about
如果将站点移动到子文件夹,此样式URL将失败。
(相对)否则,链接将被视为相对于当前“文件夹”。如果移动整个站点,此样式URL将正常工作 - 但是,如果将.html文件移动到目录结构中的不同深度,它将停止正确链接。
当您向头部添加<base>
标记时,它会告诉浏览器使用该网址作为根相对网址的基础,而不是普通的http根。
答案 1 :(得分:0)
相对寻址是它的本质和绝对的。
.htaccess
文件和mod_rewrite模块完成此操作。如有必要,请将应用移至单独的子域,然后使用基于 HTTP_HOST 过滤的vhost配置或mod_rewrite规则。PS。我添加了相关的标签。