Joomla SEF自定义组件任务的URL

时间:2017-12-21 15:16:30

标签: php joomla

我对Joomla很新!并构建自定义组件以提供API服务。 以下是组件功能的URL:

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

我想将其改为:

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

有什么想法我能做到吗?

我尝试重写.htaccess为特定的网址,但Joomla!将它重定向回index.php。

还尝试通过ARTIO安装joomsef,但它没有用。

提前致谢!

1 个答案:

答案 0 :(得分:0)

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

[componentName] BuildRoute 将是构建SEF或自定义网址的功能。
- 此函数将返回一个数组,其中的元素将连接以构建自定义URL。 - 取决于您在数组中返回的内容将确定URL结构。
例如。

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

BuildRoute需要返回array("ajax", "functionA");

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

[componentName] ParseRoute 是将自定义网址转换回内部网址的功能。

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

  • 然后使用该参数重建映射回内部链接的返回数组

对于Eg。 :

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

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

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

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

<小时/> 我不能从URL中删除“组件”,否则它将无法正常工作但对我来说没问题。由于还需要“componentA”,因此它将调用我的自定义组件文件夹中的router.php文件。

希望这个帮助=)