我想知道它是怎么可能的,这是我的代码:
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-&gt; store_url 如何在href中有额外的“/”? 它是joomla网站,我有标准的joomla .htaaccess,但添加了从http到https的重定向:
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
答案 0 :(得分:0)
我想这是Joomla或者它的插件?在Joomla控制面板或插件配置中,您可以将URL设置为您自己的站点。您可能已在那里输入www.website.com
。您实际上应该已输入http://www.website.com
。 Joomla或插件使用该值在网站中构建内部链接。
您遇到的问题是浏览器会将网址www.website.com
视为相对路径到当前网页的路径。如果是http://www.website.com/
,浏览器会将其视为绝对路径。
浏览器找到此链接的页面位于域的根目录中。可能http://www.website.com/
自己或http://www.website.com/something.php
。因此浏览器自己将前导/
添加到相对URL,以指示路径相对于域的根。 (您在浏览器的解释中看到呈现的HTML源中的/
。只需查看原始HTML源,您就找不到领先/
那里。)
从http://www.website.com/
到/www.website.com
的相对关联最终会在http://www.website.com/www.website.com
。
结束语:这里的教训是,在安装和配置某些第三方软件时,请始终密切关注您正在设置的设置。如有可能,请参阅手册!