0

我在想怎么可能,这是我的代码:

echo '<span class="store_url">'.JText::_('WEB').': <a href="'.$item->store_url.'" target="_blank">'.$item->store_url.'</a></span>';

在输出中我得到:

<a target="_blank" href="/www.website.com">www.website.com</a>

在 href 和 link 中是相同的值: $item->store_url 在 href 中怎么可能有额外的“/”?这是 joomla 网站,我有标准的 joomla .htaac​​cess,但添加了从 http 到 https 的重定向:

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
4

1 回答 1

0

我猜这是 Joomla 还是一些插件?在您的 Joomla 控制面板或插件配置中,您可以将 URL 设置为您自己的站点。您可能已经进入www.website.com那里。您实际上应该已经输入了http://www.website.com. Joomla 或插件使用该值在网站中建立内部链接。

您遇到的问题是浏览器将 URLwww.website.com视为当前页面路径的相对路径。如果是http://www.website.com/,浏览器会将其视为绝对路径

浏览器找到此链接的页面位于域的根目录中。可能http://www.website.com/它本身或http://www.website.com/something.php. 所以浏览器自己/在相对URL后面加上前导,表示路径是相对于域的根目录的。(您/呈现的 HTML Source中看到,由浏览器解释。只需查看原始 HTML Source,您不会在/那里找到前导。)

相对链接 from http://www.website.com/to/www.website.com将结束于http://www.website.com/www.website.com

最后:这里的教训是,在安装和配置某些 3rd 方软件时,请始终密切注意您正在设置的设置。并尽可能查阅手册!

于 2013-06-06T20:56:08.663 回答