Joomla SEF URL 到自定义组件任务

Joomla SEF URL to custom component task

我是 Joomla 的新手!并构建自定义组件以提供 API 服务。 下面是组件函数的 url :

http://www.example.com/index.php?option=com_componentA&task=ajax.functionA&format=json

我想把它改成:

http://www.example.com/componentA/functionA

有什么办法可以实现吗?

我尝试为那个特定的 url 在 .htaccess 上重写,但是 Joomla!会将其重定向回 index.php。

也尝试通过 ARTIO 安装 joomsef,但没有成功。

提前致谢!

经过几个小时的测试,我已经解决了。我已将 router.php 添加到我的组件文件夹中,其中包含两个函数“[componentName]BuildRoute”和“[componentName]ParseRoute”以覆盖原始函数。参考 Joomla! Documentation.

[componentName]BuildRoute 将是构建 SEF 或自定义的函数 URL.
- 此函数将 return 一个数组,其中的元素将被连接起来以构建自定义 URL。 - 取决于你return 数组中的内容将决定URL 结构。
例如 :

http://www.example.com/index.php?option=com_componentA&task=ajax.functionA&format=json

BuildRoute需要returnarray("ajax", "functionA");

并翻译成http://www.example.com/component/componentA/ajax/functionA

[componentName]ParseRoute 将是将自定义 URL 转换回内部 URL.

的函数
  • 此函数将输入一个数组,其中每个元素将用于确定内部 URL。

  • 然后使用参数重建​​一个映射回内部link

  • 的return数组

例如。 :

http://www.example.com/component/componentA/ajax/functionA

ParseRoute 参数将为 array("ajax", "functionA")

ParseRoute 需要 return array("task" => "ajax.createPolicyResult", "format"=>"json");

http://www.example.com/index.php?option=com_componentA&task=ajax.functionA&format=json


我无法从 URL 中删除 "component" 否则它不会工作,但对我来说没问题。由于还需要 "componentA",因此它将调用我的自定义组件文件夹中的 router.php 文件。

希望对您有所帮助 =)