2017-12-21 23 views
-1

私はJoomla! APIサービスを提供するためのカスタムコンポーネントを構築します。 下記成分関数へのURLです:Joomla SEFカスタムコンポーネントタスクへの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にリダイレクトします。

また、joomsefをARTIOでインストールしようとしましたが、動作しませんでした。

ありがとうございました!

+0

ローカルホストには外部からアクセスできません。また、あなたは今までに何を試みたのか、どこで失敗したのかを最初に伝えるべきですか?それを確認してください。https://stackoverflow.com/help/how-to-ask –

+0

そうです。わかりました。 URLは単なる例です。私は質問を更新します、私はそれに解決策を見つけました。 – Kaoru

答えて

0

数時間のテストの後、私はそれを解決しました。 "[componentName] BuildRoute"と "[componentName] ParseRoute"という2つの関数を持つコンポーネントフォルダにrouter.phpを追加して元の関数をオーバーライドしました。 を参照してください。

[componentName] BuildRouteは、SEFまたはカスタムURLを構築する関数になります。
- この関数は、その中の要素が連結されてカスタムURLを構築する配列を返します。 - 配列内で返される内容に応じて、URL構造が決定されます。
たとえば、

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

BuildRouteはarray("ajax", "functionA");

を返し、内部URLに戻ってカスタムURLを変換する機能になりますhttp://www.example.com/component/componentA/ajax/functionA

[コンポーネント名] ParseRouteに変換する必要があります。

  • この関数は、各要素が内部URLを決定するために使用する配列を入力します。

  • そしてために、例えば、内部リンク

に戻すリターンマップアレイを再構築するためにパラメータを使用します。 :

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

ParseRouteパラメータはarray("ajax", "functionA")

ParseRouteが、私は他のURLから "コンポーネント" を削除カントarray("task" => "ajax.createPolicyResult", "format"=>"json");

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


を返す必要があるだろう、それはないだろう私のためにOKです。"componentA"も必要になり、カスタムコンポーネントフォルダ内のrouter.phpファイルを呼び出します。

ホープヘルプ=)

関連する問題