当前位置: 首页 > 知识库问答 >
问题:

Joomla-强制非http://预固定链接为外部链接的最有效方法

鲁烨
2023-03-14

朋友们,

我正在寻找一种最有效的方法来选择锚定标记,它将包含一个用户提交的链接到外部站点的链接,而不是错误地将其附加到当前站点url的末尾。

// Explanation:

正如你们中的许多人所知,在Joomla中编写以下链接时:

<a href="google.com">Google</a>

或者

<a href="<?=JRoute::_('google.com')?>">Google</a>

它将href附加到当前站点url。

例如,如果我的站点是http://www.stackoverflow.com/questions/ask

我点击了上面的任何一个链接,它会带我去http://www.stackoverflow.com/questions/ask/google.com

...与看起来很自然的事情相反,只是带我去谷歌。通用域名格式

// End Explanation

当然,我知道将http://前置到href可以解决这个问题。但是,对于用户提交的内容,这意味着调用基于字符串的方法来检查用户提交的链接,以确保http://(或https等)是url的起点,如果不是,则将其追加。

有没有人能解释一下做这件事的其他方法。我希望找出是否有更好、更有效的方法。

另外,如果结果证明我是以最好的方式完成的,那么我很想看看其他人对这个字符串函数使用了什么。

谢谢各位朋友。

共有2个答案

阚正真
2023-03-14

代码将强制执行http://for$unknownlink,而不使用方案(协议):

$link = JUri::getInstance($unknownlink);
if (!$link->getScheme()) $link->setScheme('http');
echo JHtml::link($link, $link, ['target' => '_blank']);

在J3工作。4、不确定旧版本

伍心水
2023-03-14

这不是一种“Joomla”行为,而是标准定义的URL解析方式。您所说的是浏览器等如何处理相对或绝对URL。

改变这种行为只会导致悲伤。

URL是表示标识符的字符串。

URL是相对URL或绝对URL。任何一种形式后面都可以跟一个片段。

相对URL是没有方案的URL。相对URL必须相对于基本URL。

绝对URL是带有方案的URL。

基本URL是带有相对方案的绝对URL。

你可能想在http://url.spec.whatwg.org/#urls读更多

 类似资料:
  • 外部链接 关键参数 报告 method metrics(指标, 数据单位) 其他参数 外部链接 source/link/a pv_count (浏览量(PV)) pv_ratio (浏览量占比,%) visit_count (访问次数) visitor_count (访客数(UV)) new_visitor_count (新访客数) new_visitor_ratio (新访客比率,%) ip_c

  • 问题内容: 由于我正在使用react-router来处理我的React应用程序中的路由,因此我很好奇是否有一种方法可以重定向到外部资源。 说某人点击: 我希望它重定向到: 我发现避免在index.html加载类似以下内容的纯JS中编写零帮助: 问题答案: 我实际上最终构建了自己的组件。 它从元素中获取信息,因此我可以将其保留在自己的路线中。如: 如果有人好奇,这是我的组件: 编辑-注意:这与一起使

  • 问题内容: 我正在生成Javadocs。现在,我想自动将所有库和JDK类链接到该lib或JDK的官方文档。这可能吗,如果可以,我需要哪个命令行参数 问题答案: 解决对标准Java类的引用需要您具有Java Docs的本地副本。 JDK 7 JavaDocs可在此处的其他资源下找到。 然后,运行带有选项的javadoc 。它使用您要参考的文档的URL(例如,https://docs.oracle.c

  • 我正试图将外部网站查看到web浏览器组件中。它在模拟器中工作,但当我构建到Android时,它似乎缺乏互联网许可。有谁能帮我做错的地方吗?

  • 我有几个应用程序容器,我想连接到 mongodb 容器。我尝试了external_links但我无法连接到mongodb。 我得到 MongoError:第一次连接时无法连接到服务器[mongodb:27017] 我必须将容器添加到同一个网络中才能让external_links工作吗? MongoDB: 应用程序: 网络:

  • 我使用的是spring-boot:1.3.3、spring-hateoas:0.19.0和spring-data-rest-core:2.4.4。 这是Spring-Hateoas提供的内容的例子。过了一段时间,我将我的应用程序切换到SSL。