Joomla SEF自定义组件任务的URL

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Joomla SEF自定义组件任务的URL相关的知识,希望对你有一定的参考价值。

我对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,但它没有用。

提前致谢!

答案

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

[componentName] BuildRoute将是构建SEF或自定义URL的函数。 - 此函数将返回一个数组,其中的元素将连接以构建自定义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转换回内部URL的功能。

  • 此函数将输入一个数组,其中每个元素将用于确定内部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


I cant remove the "component" from the URL else it won't work but its OK for me. As the "componentA" is needed as well so that it will call the router.php file in my custom component folder.

希望这个帮助=)

以上是关于Joomla SEF自定义组件任务的URL的主要内容,如果未能解决你的问题,请参考以下文章

使 Joomla 组件与 SEF/SEO 兼容

Joomla home 丢失了组件的 sef 别名

在 Joomla 3 中向组件添加带有自定义 url 参数的菜单类型

Joomla 3.3,AJAX,组件参数不会加载

Joomla 自定义组件未找到 404 错误

Joomla!自定义组件 css 问题