【问题标题】:Joomla encodes my link targets inside my componentJoomla 在我的组件中编码我的链接目标
【发布时间】:2014-11-26 23:17:42
【问题描述】:

现在搜索了一段时间。 我正在使用最新的 Joomla 版本 3.3.6(带有 Gantry 框架)并试图为它创建一个自己的组件。 我遇到的问题是:我需要使用包含空格等特殊字符的链接。 Joomla 似乎对这些链接进行了编码或重写,并用 HTML 代码替换了特殊字符。

我的组件视图文件中的示例(硬编码):

<a href="index.html#test like" title="test like">test like</a>

在前端打开时变为:

<a href="index.html#test%20like" title="test like">test like</a>

我现在正在寻找执行此“技巧”以破解此行为的函数, 但还找不到。 希望有人可以帮助我。

【问题讨论】:

  • 我相信这可能是一个使 URL 安全的 Gantry 功能。但正如@Tims 提到的,不要试图改变这种行为。
  • 您好 Lodder,非常感谢您的评论。我还在 Gantry 源代码中进行了搜索,但找不到解决方案。我知道这是一项安全功能,但我真的很想知道哪个功能会更改我的硬编码链接。
  • 这很难说。龙门非常大,有数百个文件。 Gantry 当然只是一个猜测,因为它不是 Joomla 默认做的。
  • 嗨洛德,非常感谢。是的,Gantry 很大 ^^ 我昨天搜索了整个但找不到任何东西,我不能确定真的是 Gantry 改变了链接。问题是,该项目位于我无法以我想要的方式调试的服务器上。所以我必须或多或少地逐行搜索并遵循价值,这就像永远^^但是无论如何,感谢您的建议和您的cmets!
  • 我正在使用 Netbeans,并且已经搜索了 urlencode、htmlentities、htmlspecialchars、replace 等。还有很多通配符和不同的措辞。但到目前为止还没有运气:(

标签: joomla


【解决方案1】:

空格是 URL/URI 中的不安全字符,因此需要进行编码。这是因为在某些用途(尤其是多个空格)中可能会丢失重要的空格序列。

当一个空格被编码时,它变成了十六进制的%20。这是正确的行为,您不应尝试更改,因为这会使您的 URL/URI 不安全。

有关不安全字符和保留字符的更多信息,请查看以下链接。

http://www.blooberry.com/indexdot/html/topics/urlencoding.htm

http://perishablepress.com/stop-using-unsafe-characters-in-urls/

【讨论】:

  • 您好蒂姆斯,非常感谢您的回答。我只使用硬编码链接,并且我只需要这个功能用于“#”之后的空格,就像我的例子一样。我了解,这是一个安全功能,它可以保护系统,但我仍然想知道哪个文件中的哪个功能会发生这种变化。
  • 这不是安全功能。这是一个规范。您不应该更改 joomla 的正确行为以允许您不正确地使用 URL。改为修复您的锚链接。一种标准方法是使用_- 代替空格。
  • 嗨蒂姆斯,感谢您的评论。在又一天搜索此功能后,我想我将不得不更改锚链接。感谢您提供所有信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多