网站的行为就像它有一个<base>标签,但没有一个

Sab*_*ste 0 html php base prepend

我正在寻找调试的想法,不知道发生了什么.没有URI方案(例如)的所有直接链接http://都不能在锚中工作.所以假设我正在目录中的localhost上工作./includes/:

<a href="www.example.com">Example<a> 带你去 127.0.0.1/includes/www.example.com

<a href="http://www.example.com">Example<a> 带你去 www.example.com

使用其他目录中的文件也会失败:

<a href="www.example.com">Example<a>带您127.0.0.1/other/directory/www.example.com开始在当127.0.0.1/other/directory

这是一个基本的HTML编码页面.它是用PHP构建的,有几个.css文件和.js文件的链接.

我已确认:

  • <base>项目文件中没有任何标记(netbeans项目搜索)
  • 没有.htaccess文件在任何地方
  • 任何地方都没有改编.
  • 这是我的localhost(127.0.0.1)上的一个项目.但是,其他项目没有相同的问题.
  • 上传到实时服务器时,我没有遇到同样的问题.

在Chrome调试器中,URI看起来是正确的,但是当我点击链接(例如www.example.com)时,它会将页面信息预先添加到该链接,从而导致其失败.奇怪的是,即使用CTRL-U 查看源代码,当我点击链接时,它也会带我到同一个不正确的URI!

对于firefox(和firebug)也是如此.

什么导致坏链接的想法?

Bra*_*rad 5

您的href属性值不正确:

<a href="www.example.com">Example<a>
Run Code Online (Sandbox Code Playgroud)

你错过了协议.放在http://前面:

<a href="http://www.example.com">Example<a>
Run Code Online (Sandbox Code Playgroud)

没有它,浏览器如何知道你没有打算相对于当前文件命名的文件www.example.com?您必须包含协议.

  • http://www.ietf.org/rfc/rfc2396.txt和http://www.w3.org/TR/html401/struct/links.html和一个小逻辑`www.example.com`是一个有效的文件名称,您可以在服务器上有一个名为该文件的文件 (2认同)