<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.sandbox.joomla.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nori</id>
	<title>Joomla! Documentation - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.sandbox.joomla.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nori"/>
	<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/Special:Contributions/Nori"/>
	<updated>2026-07-07T04:03:53Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:Adding_a_menu_link_in_an_article/ja&amp;diff=503339</id>
		<title>J4.x:Adding a menu link in an article/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:Adding_a_menu_link_in_an_article/ja&amp;diff=503339"/>
		<updated>2018-08-16T18:09:40Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;&amp;#039;&amp;#039;新規&amp;#039;&amp;#039;をクリックして新しい&amp;#039;&amp;#039;コンテンツ&amp;#039;&amp;#039;を作成 {{rarr}} &amp;#039;&amp;#039;記事&amp;#039;&amp;#039;-ページでコンテンツを入力後&amp;#039;&amp;#039;保存&amp;#039;&amp;#039;します。保存していない場...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{Top portal heading|color=white-bkgd|icon=magic|icon-color=#5091cd|size=3x|text-color=#333|title=チュートリアル&amp;lt;br /&amp;gt;&lt;br /&gt;
記事からメニューアイテムの追加方法}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.0}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
記事編集時に直接メニューアイテムを追加する手順&lt;br /&gt;
&lt;br /&gt;
# 記事編集画面へ&lt;br /&gt;
#* &#039;&#039;記事&#039;&#039;へ画面へ移動し {{rarr}} 既存の&#039;&#039;記事&#039;&#039;をクリックして編集 &#039;&#039;&#039;するか&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;新規&#039;&#039;をクリックして新しい&#039;&#039;コンテンツ&#039;&#039;を作成 {{rarr}} &#039;&#039;記事&#039;&#039;-ページでコンテンツを入力後&#039;&#039;保存&#039;&#039;します。保存していない場合は、ボタンが表示されません&lt;br /&gt;
# On the &#039;&#039;Article: Edit&#039;&#039; page you can click on &#039;&#039;New Menu Item&#039;&#039; to open the depending modal popup {{-}}[[File:Article Edit page-en.png|800px|center]]&lt;br /&gt;
# Fill in the &#039;&#039;Menu Title&#039;&#039;, as &#039;&#039;Menu Item Type&#039;&#039; choose &#039;&#039;Single Article&#039;&#039; and select the newly created article. Remember to choose the correct &#039;&#039;Menu&#039;&#039; on the right where the link should appear. &#039;&#039;&#039;Note:&#039;&#039;&#039; You can select a single article but also multiple ones, e.g. by category {{-}} [[File:Fill in the form for a new menu item-en.png|800px|center]]&lt;br /&gt;
# Click &#039;&#039;Save&amp;amp;Close&#039;&#039; and head to &#039;&#039;Menus&#039;&#039; {{rarr}} &#039;&#039;[The Menu with the new Item]&#039;&#039;. You should now see the new item in the list {{-}}[[File:Menu Item Created-en.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials{{#translation:}}]]&lt;br /&gt;
[[Category:Article Management{{#translation:}}]]&lt;br /&gt;
[[Category:Beginners{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 4.x{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 4.0{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J4.x:Adding_a_menu_link_in_an_article/6/ja&amp;diff=503338</id>
		<title>Translations:J4.x:Adding a menu link in an article/6/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J4.x:Adding_a_menu_link_in_an_article/6/ja&amp;diff=503338"/>
		<updated>2018-08-16T18:09:39Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;&amp;#039;&amp;#039;新規&amp;#039;&amp;#039;をクリックして新しい&amp;#039;&amp;#039;コンテンツ&amp;#039;&amp;#039;を作成 {{rarr}} &amp;#039;&amp;#039;記事&amp;#039;&amp;#039;-ページでコンテンツを入力後&amp;#039;&amp;#039;保存&amp;#039;&amp;#039;します。保存していない場...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;新規&#039;&#039;をクリックして新しい&#039;&#039;コンテンツ&#039;&#039;を作成 {{rarr}} &#039;&#039;記事&#039;&#039;-ページでコンテンツを入力後&#039;&#039;保存&#039;&#039;します。保存していない場合は、ボタンが表示されません&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:Adding_a_menu_link_in_an_article/ja&amp;diff=503337</id>
		<title>J4.x:Adding a menu link in an article/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:Adding_a_menu_link_in_an_article/ja&amp;diff=503337"/>
		<updated>2018-08-16T18:05:12Z</updated>

		<summary type="html">&lt;p&gt;Nori: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{Top portal heading|color=white-bkgd|icon=magic|icon-color=#5091cd|size=3x|text-color=#333|title=チュートリアル&amp;lt;br /&amp;gt;&lt;br /&gt;
記事からメニューアイテムの追加方法}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.0}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
記事編集時に直接メニューアイテムを追加する手順&lt;br /&gt;
&lt;br /&gt;
# 記事編集画面へ&lt;br /&gt;
#* &#039;&#039;記事&#039;&#039;へ画面へ移動し {{rarr}} 既存の&#039;&#039;記事&#039;&#039;をクリックして編集 &#039;&#039;&#039;するか&#039;&#039;&#039;&lt;br /&gt;
#* Create a new one by clicking on &#039;&#039;New&#039;&#039; on the &#039;&#039;Content&#039;&#039; {{rarr}} &#039;&#039;Article&#039;&#039;-Page and click on &#039;&#039;Save&#039;&#039; after filling out the form. The Button will not appear if the article is not saved&lt;br /&gt;
# On the &#039;&#039;Article: Edit&#039;&#039; page you can click on &#039;&#039;New Menu Item&#039;&#039; to open the depending modal popup {{-}}[[File:Article Edit page-en.png|800px|center]]&lt;br /&gt;
# Fill in the &#039;&#039;Menu Title&#039;&#039;, as &#039;&#039;Menu Item Type&#039;&#039; choose &#039;&#039;Single Article&#039;&#039; and select the newly created article. Remember to choose the correct &#039;&#039;Menu&#039;&#039; on the right where the link should appear. &#039;&#039;&#039;Note:&#039;&#039;&#039; You can select a single article but also multiple ones, e.g. by category {{-}} [[File:Fill in the form for a new menu item-en.png|800px|center]]&lt;br /&gt;
# Click &#039;&#039;Save&amp;amp;Close&#039;&#039; and head to &#039;&#039;Menus&#039;&#039; {{rarr}} &#039;&#039;[The Menu with the new Item]&#039;&#039;. You should now see the new item in the list {{-}}[[File:Menu Item Created-en.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials{{#translation:}}]]&lt;br /&gt;
[[Category:Article Management{{#translation:}}]]&lt;br /&gt;
[[Category:Beginners{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 4.x{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 4.0{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J4.x:Adding_a_menu_link_in_an_article/5/ja&amp;diff=503336</id>
		<title>Translations:J4.x:Adding a menu link in an article/5/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J4.x:Adding_a_menu_link_in_an_article/5/ja&amp;diff=503336"/>
		<updated>2018-08-16T18:05:12Z</updated>

		<summary type="html">&lt;p&gt;Nori: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;記事&#039;&#039;へ画面へ移動し {{rarr}} 既存の&#039;&#039;記事&#039;&#039;をクリックして編集 &#039;&#039;&#039;するか&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:Adding_a_menu_link_in_an_article/ja&amp;diff=503335</id>
		<title>J4.x:Adding a menu link in an article/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:Adding_a_menu_link_in_an_article/ja&amp;diff=503335"/>
		<updated>2018-08-16T18:02:44Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;&amp;#039;&amp;#039;記事&amp;#039;&amp;#039;へ画面へ {{rarr}} 既存の&amp;#039;&amp;#039;記事&amp;#039;&amp;#039;をクリックして編集 &amp;#039;&amp;#039;&amp;#039;又は&amp;#039;&amp;#039;&amp;#039;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{Top portal heading|color=white-bkgd|icon=magic|icon-color=#5091cd|size=3x|text-color=#333|title=チュートリアル&amp;lt;br /&amp;gt;&lt;br /&gt;
記事からメニューアイテムの追加方法}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.0}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
記事編集時に直接メニューアイテムを追加する手順&lt;br /&gt;
&lt;br /&gt;
# 記事編集画面へ&lt;br /&gt;
#* &#039;&#039;記事&#039;&#039;へ画面へ {{rarr}} 既存の&#039;&#039;記事&#039;&#039;をクリックして編集 &#039;&#039;&#039;又は&#039;&#039;&#039;&lt;br /&gt;
#* Create a new one by clicking on &#039;&#039;New&#039;&#039; on the &#039;&#039;Content&#039;&#039; {{rarr}} &#039;&#039;Article&#039;&#039;-Page and click on &#039;&#039;Save&#039;&#039; after filling out the form. The Button will not appear if the article is not saved&lt;br /&gt;
# On the &#039;&#039;Article: Edit&#039;&#039; page you can click on &#039;&#039;New Menu Item&#039;&#039; to open the depending modal popup {{-}}[[File:Article Edit page-en.png|800px|center]]&lt;br /&gt;
# Fill in the &#039;&#039;Menu Title&#039;&#039;, as &#039;&#039;Menu Item Type&#039;&#039; choose &#039;&#039;Single Article&#039;&#039; and select the newly created article. Remember to choose the correct &#039;&#039;Menu&#039;&#039; on the right where the link should appear. &#039;&#039;&#039;Note:&#039;&#039;&#039; You can select a single article but also multiple ones, e.g. by category {{-}} [[File:Fill in the form for a new menu item-en.png|800px|center]]&lt;br /&gt;
# Click &#039;&#039;Save&amp;amp;Close&#039;&#039; and head to &#039;&#039;Menus&#039;&#039; {{rarr}} &#039;&#039;[The Menu with the new Item]&#039;&#039;. You should now see the new item in the list {{-}}[[File:Menu Item Created-en.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials{{#translation:}}]]&lt;br /&gt;
[[Category:Article Management{{#translation:}}]]&lt;br /&gt;
[[Category:Beginners{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 4.x{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 4.0{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J4.x:Adding_a_menu_link_in_an_article/5/ja&amp;diff=503334</id>
		<title>Translations:J4.x:Adding a menu link in an article/5/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J4.x:Adding_a_menu_link_in_an_article/5/ja&amp;diff=503334"/>
		<updated>2018-08-16T18:02:44Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;&amp;#039;&amp;#039;記事&amp;#039;&amp;#039;へ画面へ {{rarr}} 既存の&amp;#039;&amp;#039;記事&amp;#039;&amp;#039;をクリックして編集 &amp;#039;&amp;#039;&amp;#039;又は&amp;#039;&amp;#039;&amp;#039;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;記事&#039;&#039;へ画面へ {{rarr}} 既存の&#039;&#039;記事&#039;&#039;をクリックして編集 &#039;&#039;&#039;又は&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:Adding_a_menu_link_in_an_article/ja&amp;diff=503333</id>
		<title>J4.x:Adding a menu link in an article/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:Adding_a_menu_link_in_an_article/ja&amp;diff=503333"/>
		<updated>2018-08-16T17:56:48Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;記事編集画面へ&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{Top portal heading|color=white-bkgd|icon=magic|icon-color=#5091cd|size=3x|text-color=#333|title=チュートリアル&amp;lt;br /&amp;gt;&lt;br /&gt;
記事からメニューアイテムの追加方法}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.0}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
記事編集時に直接メニューアイテムを追加する手順&lt;br /&gt;
&lt;br /&gt;
# 記事編集画面へ&lt;br /&gt;
#* Going to &#039;&#039;Content&#039;&#039; {{rarr}} &#039;&#039;Articles&#039;&#039; and click on an existing one to edit it &#039;&#039;&#039;or&#039;&#039;&#039;&lt;br /&gt;
#* Create a new one by clicking on &#039;&#039;New&#039;&#039; on the &#039;&#039;Content&#039;&#039; {{rarr}} &#039;&#039;Article&#039;&#039;-Page and click on &#039;&#039;Save&#039;&#039; after filling out the form. The Button will not appear if the article is not saved&lt;br /&gt;
# On the &#039;&#039;Article: Edit&#039;&#039; page you can click on &#039;&#039;New Menu Item&#039;&#039; to open the depending modal popup {{-}}[[File:Article Edit page-en.png|800px|center]]&lt;br /&gt;
# Fill in the &#039;&#039;Menu Title&#039;&#039;, as &#039;&#039;Menu Item Type&#039;&#039; choose &#039;&#039;Single Article&#039;&#039; and select the newly created article. Remember to choose the correct &#039;&#039;Menu&#039;&#039; on the right where the link should appear. &#039;&#039;&#039;Note:&#039;&#039;&#039; You can select a single article but also multiple ones, e.g. by category {{-}} [[File:Fill in the form for a new menu item-en.png|800px|center]]&lt;br /&gt;
# Click &#039;&#039;Save&amp;amp;Close&#039;&#039; and head to &#039;&#039;Menus&#039;&#039; {{rarr}} &#039;&#039;[The Menu with the new Item]&#039;&#039;. You should now see the new item in the list {{-}}[[File:Menu Item Created-en.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials{{#translation:}}]]&lt;br /&gt;
[[Category:Article Management{{#translation:}}]]&lt;br /&gt;
[[Category:Beginners{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 4.x{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 4.0{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J4.x:Adding_a_menu_link_in_an_article/4/ja&amp;diff=503332</id>
		<title>Translations:J4.x:Adding a menu link in an article/4/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J4.x:Adding_a_menu_link_in_an_article/4/ja&amp;diff=503332"/>
		<updated>2018-08-16T17:56:47Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;記事編集画面へ&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;記事編集画面へ&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:Adding_a_menu_link_in_an_article/ja&amp;diff=503331</id>
		<title>J4.x:Adding a menu link in an article/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:Adding_a_menu_link_in_an_article/ja&amp;diff=503331"/>
		<updated>2018-08-16T17:55:43Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;記事編集時に直接メニューアイテムを追加する手順&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{Top portal heading|color=white-bkgd|icon=magic|icon-color=#5091cd|size=3x|text-color=#333|title=チュートリアル&amp;lt;br /&amp;gt;&lt;br /&gt;
記事からメニューアイテムの追加方法}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.0}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
記事編集時に直接メニューアイテムを追加する手順&lt;br /&gt;
&lt;br /&gt;
# Edit an article by either&lt;br /&gt;
#* Going to &#039;&#039;Content&#039;&#039; {{rarr}} &#039;&#039;Articles&#039;&#039; and click on an existing one to edit it &#039;&#039;&#039;or&#039;&#039;&#039;&lt;br /&gt;
#* Create a new one by clicking on &#039;&#039;New&#039;&#039; on the &#039;&#039;Content&#039;&#039; {{rarr}} &#039;&#039;Article&#039;&#039;-Page and click on &#039;&#039;Save&#039;&#039; after filling out the form. The Button will not appear if the article is not saved&lt;br /&gt;
# On the &#039;&#039;Article: Edit&#039;&#039; page you can click on &#039;&#039;New Menu Item&#039;&#039; to open the depending modal popup {{-}}[[File:Article Edit page-en.png|800px|center]]&lt;br /&gt;
# Fill in the &#039;&#039;Menu Title&#039;&#039;, as &#039;&#039;Menu Item Type&#039;&#039; choose &#039;&#039;Single Article&#039;&#039; and select the newly created article. Remember to choose the correct &#039;&#039;Menu&#039;&#039; on the right where the link should appear. &#039;&#039;&#039;Note:&#039;&#039;&#039; You can select a single article but also multiple ones, e.g. by category {{-}} [[File:Fill in the form for a new menu item-en.png|800px|center]]&lt;br /&gt;
# Click &#039;&#039;Save&amp;amp;Close&#039;&#039; and head to &#039;&#039;Menus&#039;&#039; {{rarr}} &#039;&#039;[The Menu with the new Item]&#039;&#039;. You should now see the new item in the list {{-}}[[File:Menu Item Created-en.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials{{#translation:}}]]&lt;br /&gt;
[[Category:Article Management{{#translation:}}]]&lt;br /&gt;
[[Category:Beginners{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 4.x{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 4.0{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J4.x:Adding_a_menu_link_in_an_article/3/ja&amp;diff=503330</id>
		<title>Translations:J4.x:Adding a menu link in an article/3/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J4.x:Adding_a_menu_link_in_an_article/3/ja&amp;diff=503330"/>
		<updated>2018-08-16T17:55:43Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;記事編集時に直接メニューアイテムを追加する手順&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;記事編集時に直接メニューアイテムを追加する手順&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:Adding_a_menu_link_in_an_article/ja&amp;diff=503329</id>
		<title>J4.x:Adding a menu link in an article/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:Adding_a_menu_link_in_an_article/ja&amp;diff=503329"/>
		<updated>2018-08-16T17:52:04Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;記事からメニューアイテムの追加方法&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{Top portal heading|color=white-bkgd|icon=magic|icon-color=#5091cd|size=3x|text-color=#333|title=チュートリアル&amp;lt;br /&amp;gt;&lt;br /&gt;
記事からメニューアイテムの追加方法}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.0}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
Steps to add a menu item directly when an article is edited:&lt;br /&gt;
&lt;br /&gt;
# Edit an article by either&lt;br /&gt;
#* Going to &#039;&#039;Content&#039;&#039; {{rarr}} &#039;&#039;Articles&#039;&#039; and click on an existing one to edit it &#039;&#039;&#039;or&#039;&#039;&#039;&lt;br /&gt;
#* Create a new one by clicking on &#039;&#039;New&#039;&#039; on the &#039;&#039;Content&#039;&#039; {{rarr}} &#039;&#039;Article&#039;&#039;-Page and click on &#039;&#039;Save&#039;&#039; after filling out the form. The Button will not appear if the article is not saved&lt;br /&gt;
# On the &#039;&#039;Article: Edit&#039;&#039; page you can click on &#039;&#039;New Menu Item&#039;&#039; to open the depending modal popup {{-}}[[File:Article Edit page-en.png|800px|center]]&lt;br /&gt;
# Fill in the &#039;&#039;Menu Title&#039;&#039;, as &#039;&#039;Menu Item Type&#039;&#039; choose &#039;&#039;Single Article&#039;&#039; and select the newly created article. Remember to choose the correct &#039;&#039;Menu&#039;&#039; on the right where the link should appear. &#039;&#039;&#039;Note:&#039;&#039;&#039; You can select a single article but also multiple ones, e.g. by category {{-}} [[File:Fill in the form for a new menu item-en.png|800px|center]]&lt;br /&gt;
# Click &#039;&#039;Save&amp;amp;Close&#039;&#039; and head to &#039;&#039;Menus&#039;&#039; {{rarr}} &#039;&#039;[The Menu with the new Item]&#039;&#039;. You should now see the new item in the list {{-}}[[File:Menu Item Created-en.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials{{#translation:}}]]&lt;br /&gt;
[[Category:Article Management{{#translation:}}]]&lt;br /&gt;
[[Category:Beginners{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 4.x{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 4.0{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J4.x:Adding_a_menu_link_in_an_article/2/ja&amp;diff=503328</id>
		<title>Translations:J4.x:Adding a menu link in an article/2/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J4.x:Adding_a_menu_link_in_an_article/2/ja&amp;diff=503328"/>
		<updated>2018-08-16T17:52:03Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;記事からメニューアイテムの追加方法&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;記事からメニューアイテムの追加方法&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:Adding_a_menu_link_in_an_article/ja&amp;diff=503327</id>
		<title>J4.x:Adding a menu link in an article/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:Adding_a_menu_link_in_an_article/ja&amp;diff=503327"/>
		<updated>2018-08-16T17:50:43Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;チュートリアル&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{Top portal heading|color=white-bkgd|icon=magic|icon-color=#5091cd|size=3x|text-color=#333|title=チュートリアル&amp;lt;br /&amp;gt;&lt;br /&gt;
How to add a Menu Item from an Article}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.0}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
Steps to add a menu item directly when an article is edited:&lt;br /&gt;
&lt;br /&gt;
# Edit an article by either&lt;br /&gt;
#* Going to &#039;&#039;Content&#039;&#039; {{rarr}} &#039;&#039;Articles&#039;&#039; and click on an existing one to edit it &#039;&#039;&#039;or&#039;&#039;&#039;&lt;br /&gt;
#* Create a new one by clicking on &#039;&#039;New&#039;&#039; on the &#039;&#039;Content&#039;&#039; {{rarr}} &#039;&#039;Article&#039;&#039;-Page and click on &#039;&#039;Save&#039;&#039; after filling out the form. The Button will not appear if the article is not saved&lt;br /&gt;
# On the &#039;&#039;Article: Edit&#039;&#039; page you can click on &#039;&#039;New Menu Item&#039;&#039; to open the depending modal popup {{-}}[[File:Article Edit page-en.png|800px|center]]&lt;br /&gt;
# Fill in the &#039;&#039;Menu Title&#039;&#039;, as &#039;&#039;Menu Item Type&#039;&#039; choose &#039;&#039;Single Article&#039;&#039; and select the newly created article. Remember to choose the correct &#039;&#039;Menu&#039;&#039; on the right where the link should appear. &#039;&#039;&#039;Note:&#039;&#039;&#039; You can select a single article but also multiple ones, e.g. by category {{-}} [[File:Fill in the form for a new menu item-en.png|800px|center]]&lt;br /&gt;
# Click &#039;&#039;Save&amp;amp;Close&#039;&#039; and head to &#039;&#039;Menus&#039;&#039; {{rarr}} &#039;&#039;[The Menu with the new Item]&#039;&#039;. You should now see the new item in the list {{-}}[[File:Menu Item Created-en.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials{{#translation:}}]]&lt;br /&gt;
[[Category:Article Management{{#translation:}}]]&lt;br /&gt;
[[Category:Beginners{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 4.x{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 4.0{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J4.x:Adding_a_menu_link_in_an_article/1/ja&amp;diff=503326</id>
		<title>Translations:J4.x:Adding a menu link in an article/1/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J4.x:Adding_a_menu_link_in_an_article/1/ja&amp;diff=503326"/>
		<updated>2018-08-16T17:50:43Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;チュートリアル&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;チュートリアル&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:Adding_a_menu_link_in_an_article/ja&amp;diff=503325</id>
		<title>J4.x:Adding a menu link in an article/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:Adding_a_menu_link_in_an_article/ja&amp;diff=503325"/>
		<updated>2018-08-16T17:50:28Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;J4.x:記事にメニューリンクを追加&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{Top portal heading|color=white-bkgd|icon=magic|icon-color=#5091cd|size=3x|text-color=#333|title=Tutorial&amp;lt;br /&amp;gt;&lt;br /&gt;
How to add a Menu Item from an Article}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.0}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
Steps to add a menu item directly when an article is edited:&lt;br /&gt;
&lt;br /&gt;
# Edit an article by either&lt;br /&gt;
#* Going to &#039;&#039;Content&#039;&#039; {{rarr}} &#039;&#039;Articles&#039;&#039; and click on an existing one to edit it &#039;&#039;&#039;or&#039;&#039;&#039;&lt;br /&gt;
#* Create a new one by clicking on &#039;&#039;New&#039;&#039; on the &#039;&#039;Content&#039;&#039; {{rarr}} &#039;&#039;Article&#039;&#039;-Page and click on &#039;&#039;Save&#039;&#039; after filling out the form. The Button will not appear if the article is not saved&lt;br /&gt;
# On the &#039;&#039;Article: Edit&#039;&#039; page you can click on &#039;&#039;New Menu Item&#039;&#039; to open the depending modal popup {{-}}[[File:Article Edit page-en.png|800px|center]]&lt;br /&gt;
# Fill in the &#039;&#039;Menu Title&#039;&#039;, as &#039;&#039;Menu Item Type&#039;&#039; choose &#039;&#039;Single Article&#039;&#039; and select the newly created article. Remember to choose the correct &#039;&#039;Menu&#039;&#039; on the right where the link should appear. &#039;&#039;&#039;Note:&#039;&#039;&#039; You can select a single article but also multiple ones, e.g. by category {{-}} [[File:Fill in the form for a new menu item-en.png|800px|center]]&lt;br /&gt;
# Click &#039;&#039;Save&amp;amp;Close&#039;&#039; and head to &#039;&#039;Menus&#039;&#039; {{rarr}} &#039;&#039;[The Menu with the new Item]&#039;&#039;. You should now see the new item in the list {{-}}[[File:Menu Item Created-en.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials{{#translation:}}]]&lt;br /&gt;
[[Category:Article Management{{#translation:}}]]&lt;br /&gt;
[[Category:Beginners{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 4.x{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 4.0{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J4.x:Adding_a_menu_link_in_an_article/Page_display_title/ja&amp;diff=503324</id>
		<title>Translations:J4.x:Adding a menu link in an article/Page display title/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J4.x:Adding_a_menu_link_in_an_article/Page_display_title/ja&amp;diff=503324"/>
		<updated>2018-08-16T17:50:28Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;J4.x:記事にメニューリンクを追加&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;J4.x:記事にメニューリンクを追加&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Search_Engine_Friendly_URLs/ja&amp;diff=114500</id>
		<title>Search Engine Friendly URLs/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Search_Engine_Friendly_URLs/ja&amp;diff=114500"/>
		<updated>2014-03-08T20:51:19Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;=== ルートフォーマット ===&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;検索エンジンフレンドリーURL&#039;&#039;&#039;,&#039;&#039;&#039;人が読みとれる&#039;&#039;&#039;や[[wikipedia:Clean_URL|clean URLs]]は特定ページへのパスを人と検索エンジン両方に理解できるURLです。Joomla! バージョン1.5以降ではSEF URLを含む全フォーマットでもURLを作成し解析できます。Joomla!の場合、WebサーバのURL書換えに依存しない為、Joomla!はmod_rewriteモジュールを使用しているApache以外のサーバでも作動します。SEF URLは特定の固有パターンがありますがユーザはURL毎に短い説明(エイリアス)を含める事ができます。&lt;br /&gt;
&lt;br /&gt;
内部的にSEF URL(ドメイン名以降)のパスは&#039;&#039;&#039;ルート&#039;&#039;&#039;と呼ばれています。SEF URLの作成と解析処理は&#039;&#039;&#039;ルーティング&#039;&#039;&#039;と呼ばれ関連するコードは&#039;&#039;&#039;ルータ&#039;&#039;&#039;と呼ばれています。&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
ルーティングのよい例がサンプルデータ内の記事&amp;quot;Joomla!へようこそ&amp;quot;です。&lt;br /&gt;
&lt;br /&gt;
* SEF URLが無効のURL &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=1:welcome-to-joomla&amp;amp;catid=1:latest-news&amp;amp;Itemid=50&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* SEF URLが有効でmod_rewriteは無効 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php/the-­news/1-­latest­-news/1­-welcome­-to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* SEF URL,mod_rewrite両方有効 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
検索エンジンフレンドリーURLは&#039;&#039;&#039;グローバル設定&#039;&#039;&#039;内の&#039;&#039;&#039;検索エンジンフレンドリーURL&#039;&#039;&#039;で設定できますこのオプションはJoomla!1.6からデフォルトで有効になっています。詳細は[[S:MyLanguage/Enabling Search Engine Friendly (SEF) URLs|検索エンジンフレンドリーURLを有効化]]を参照して下さい。&lt;br /&gt;
&lt;br /&gt;
== FAQs ==&lt;br /&gt;
&lt;br /&gt;
=== URL内の数字はなんですか？ ===&lt;br /&gt;
古いURLと新しいURLの数字を比較してみましょう古いURLでは&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=1:welcome-to-joomla&amp;amp;catid=1:latest-news&amp;amp;Itemid=50&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
新しいURLでは:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
これらの数字は、Joomla!が必要とするパラメータでURLから取得し表示したいページを探します。 (この場合、最初の数字1はカテゴリーのID、二つ目の数字1は、記事のIDです)&lt;br /&gt;
&lt;br /&gt;
=== URLには &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt; がありませんこのファイルは削除していいですか？ ===&lt;br /&gt;
削除してはいけませんURLには&amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt;が含まれていませんが内部的にmod_rewriteが表示しないで元のパスへリダイレクトしているためです。&lt;br /&gt;
&lt;br /&gt;
=== [[S:MyLanguage/Alias|エイリアス]]とは？またどの様に作成されますか？ ===&lt;br /&gt;
エイリアスは記事、カテゴリ、セクション、メニューアイテム等のタイトルフィールドの下に表示されています。Joomla!は自動的にエイリアスを作成でき自動作成されたエイリアスはタイトルから始まりすべて小文字に変換されます。スペースやURLで使用できない文字はダッシュに変換されます。&lt;br /&gt;
&lt;br /&gt;
=== エイリアスを自分で作成したい ===&lt;br /&gt;
Joomla!が作成するエイリアスが気に入らない場合、エイリアスフィールドに好きな値を入れる事ができます。大抵の場合URL内に効果的なキーワードを使用するとSEO対策となるでしょう。記事のタイトルにこれらのキーワードを含みJoomla!で作成したり独自のエイリアスを作る事ができます。&lt;br /&gt;
&lt;br /&gt;
=== エイリアスはURLのどの部分に使用されますか？ ===&lt;br /&gt;
メニューアイテムではJoomla!はURLプラグとしてエイリアスを使用します。SEFのオプションを二つとも有効に設定しているとしてProductsというタイトルのメニューアイテムを作った場合のURLはexample.com/productsになります。&lt;br /&gt;
&lt;br /&gt;
Joomla!のルータが正しいページに移動する為、URL内のプライマリーキーを使用しています。上記例のメニューアイテムの種類がカテゴリブログの場合、記事タイトルや続きを読むリンクの3個のパーツ:&lt;br /&gt;
&lt;br /&gt;
* メニューアイテムのURL - example.com/products;&lt;br /&gt;
&lt;br /&gt;
* カテゴリのプライマリーキーとカテゴリのエイリアスを追加 - 32-fruit;&lt;br /&gt;
&lt;br /&gt;
* 記事のプライマリーキーと記事のエイリアスを追加 - 1-apple;&lt;br /&gt;
&lt;br /&gt;
完成したURL: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/products/32-fruit/1-apple&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SEF URLの数字をなくすには？ ===&lt;br /&gt;
SEF URLの数字はサイトトラフィック制御するJoomla!ルータが必要です。ルータロジックが安定したらサードパーティ製のシステムプラグインを選択しルータの機能を強化できるでしょう。その時にURLから数字は削除されます。&lt;br /&gt;
&lt;br /&gt;
== ルートフォーマットとルーティングの仕組み ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;このセクションではJoomla!コア(内蔵)のルーティングの仕組みを説明します。ルーティングエクステンションはシステムで作成するルートを変更する事があります。&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== ルートフォーマット ===&lt;br /&gt;
&lt;br /&gt;
To describe the Joomla! routing mechanism in more detail, we first need to pin down what we refer to as a &#039;&#039;&#039;route&#039;&#039;&#039;. Suppose that Joomla! has been installed in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/sites/first/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The installation path is generally referred to as the &#039;&#039;&#039;base URL&#039;&#039;&#039;. A possible example URL is &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/sites/first/products/32-fruit/1-apple&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The first part of this URL is the aforementioned base URL, and neither Joomla! nor any component router can create URLs with a different first part. The second part, &amp;lt;code&amp;gt;products/32-fruit/1-apple&amp;lt;/code&amp;gt;, is a &#039;&#039;&#039;route&#039;&#039;&#039;, consisting of three &#039;&#039;&#039;segment&#039;&#039;&#039;s.&lt;br /&gt;
&lt;br /&gt;
The first segment of a route is, for regular URLs, the alias of a menu item. The SEF URL is said to be &#039;&#039;&#039;routed through&#039;&#039;&#039; that menu item. The other segments are determined entirely by the router of the component that provides the type of the menu item. The &#039;&#039;Category - Blog&#039;&#039; menu item type, for example, is provided by the [[Content]] component, and therefore that component&#039;s router is responsible for building and parsing the remaining segments.&lt;br /&gt;
&lt;br /&gt;
It is also possible (for extensions) to ask the system to create a route without supplying a menu item to route through. In that case, the system will usually decide to create a special route that has the word &amp;lt;code&amp;gt;component&amp;lt;/code&amp;gt; as the first segment. These routes are created using a fixed format: the name of the component (without the leading &amp;lt;code&amp;gt;com_&amp;lt;/code&amp;gt;) is selected as the second segment and any parameters as the other segments.&lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
&lt;br /&gt;
It is important to note creating a menu item is the &#039;&#039;only&#039;&#039; way for a Joomla! user to define a route that leads to a specific component. It is, however, possible to create a route without showing it on the site (in a menu). An often-applied method is to create a menu item in a menu that isn&#039;t displayed anywhere. Such a menu is usually called a [[Menu|hidden menu]].&lt;br /&gt;
&lt;br /&gt;
The previous paragraph implies that it is not possible to make one component responsible for handling all routes. For example, it is not possible to specify that the URL &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/thealias&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; should display the Content item with the alias &amp;lt;code&amp;gt;thealias&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;thealias&amp;lt;/code&amp;gt; could be any word. If this needs to be done for a small number of articles, menu items can be created manually for these. Else a routing extension is necessary.&lt;br /&gt;
&lt;br /&gt;
This routing mechanism is therefore not as flexible as users sometimes require. On the other hand, it has one large advantage: it reduces the chance of ambiguous routes (routes that could lead to two different pages). Since the first segment of a route is always a menu item alias, the system immediately knows which component&#039;s router must be used to parse it.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
=== Handling Routes ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes the routing implementation. If you are a component developer, see [[Supporting SEF URLs in your component]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Joomla routes are created and resolved by [[JRouter|the JRouter class]]. This class looks in the component root of the currently active component (specified in the &amp;lt;code&amp;gt;option&amp;lt;/code&amp;gt; parameter in the query string) and includes the &amp;lt;code&amp;gt;router.php&amp;lt;/code&amp;gt; file in that component&#039;s root directory. It then calls one of two functions: one for creating the SEF URL and one for interpreting the SEF URL.&lt;br /&gt;
&lt;br /&gt;
The JRouter class is overridden by the Joomla CMS in &amp;lt;code&amp;gt;/includes/router.php&amp;lt;/code&amp;gt;. In this file the build and parse functions are overridden to properly build and parse the URLs for the Joomla CMS.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;router.php&amp;lt;/code&amp;gt; file in each component (for example, &amp;lt;code&amp;gt;/components/com_content/router.php&amp;lt;/code&amp;gt;) should contain the following two functions:&lt;br /&gt;
* ContentBuildRoute - this builds the SEF URL&lt;br /&gt;
** Parameters&lt;br /&gt;
*** $query - this is a named array containing the querystring variables&lt;br /&gt;
** Returns: an array of segments where each segment is separated by a &#039;/&#039; when later combined to create the actual URL (the items in the array should not contain &#039;/&#039; characters)&lt;br /&gt;
* ContentParseRoute - this interprets an SEF URL&lt;br /&gt;
** Parameters&lt;br /&gt;
*** $segments - this is an array that contains the segments of the URL requested.&lt;br /&gt;
** Returns: a name =&amp;gt; value array of the querystring variables that the link maps to&lt;br /&gt;
&lt;br /&gt;
=== The SEF Plugin ===&lt;br /&gt;
The Joomla &#039;&#039;System - SEF&#039;&#039; plugin inherits &amp;lt;code&amp;gt;JPlugin&amp;lt;/code&amp;gt; and implements the &amp;lt;code&amp;gt;onAfterRender()&amp;lt;/code&amp;gt; function. In this function the body of the response that will be sent to the browser is retrieved using &amp;lt;code&amp;gt;JResponse::getBody()&amp;lt;/code&amp;gt;. The body of the response is then searched for links containing &amp;lt;code&amp;gt;/index.php...&amp;lt;/code&amp;gt; and replaces them with a correct SEF URL by calling &amp;lt;code&amp;gt;JRoute::_(&#039;&#039;url&#039;&#039;)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
JRoute builds SEF URLs by instantiating a &amp;lt;code&amp;gt;JRouter&amp;lt;/code&amp;gt; object and requesting that it build the correct link from the passed in URL.&lt;br /&gt;
&lt;br /&gt;
=== Handling SEF URLs ===&lt;br /&gt;
By default the SEF URLs are handled by the &amp;lt;code&amp;gt;JRouterSite&amp;lt;/code&amp;gt; object (from &amp;lt;code&amp;gt;/includes/router.php&amp;lt;/code&amp;gt;) and is called by a call to &amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; in index.php. This call is made on the &amp;lt;code&amp;gt;$app&amp;lt;/code&amp;gt; variable which is actually an instance of &amp;lt;code&amp;gt;JSite&amp;lt;/code&amp;gt; (from &amp;lt;code&amp;gt;/includes/application.php&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; has a non-destructive result on the &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; array. That is, &amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; sets variables in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; by calling &amp;lt;code&amp;gt;JRequest::set()&amp;lt;/code&amp;gt; with the overwrite flag set to false. Thus if a variable name is returned from &amp;lt;code&amp;gt;JRouter::route()&amp;lt;/code&amp;gt; that is already in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt;, it will not put that value into &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt;. This allows for custom routing.&lt;br /&gt;
&lt;br /&gt;
=== Custom Routing ===&lt;br /&gt;
Joomla allows you to create your own routing mechanism. In order to create this mechanism you must have a plugin that overrides the &amp;lt;code&amp;gt;JPlugin::onAfterInitialise()&amp;lt;/code&amp;gt; function. This function then parses the URL and creates the needed variables in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; before the standard Joomla routing is done.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See [[Creating a System Plugin to augment JRouter]] for an example.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Search Engine Friendly URLs| ]]&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Search_Engine_Friendly_URLs/24/ja&amp;diff=114499</id>
		<title>Translations:Search Engine Friendly URLs/24/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Search_Engine_Friendly_URLs/24/ja&amp;diff=114499"/>
		<updated>2014-03-08T20:51:18Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;=== ルートフォーマット ===&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== ルートフォーマット ===&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Search_Engine_Friendly_URLs/ja&amp;diff=114498</id>
		<title>Search Engine Friendly URLs/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Search_Engine_Friendly_URLs/ja&amp;diff=114498"/>
		<updated>2014-03-08T20:51:02Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;&amp;#039;&amp;#039;このセクションではJoomla!コア(内蔵)のルーティングの仕組みを説明します。ルーティングエクステンションはシステムで作成す...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;検索エンジンフレンドリーURL&#039;&#039;&#039;,&#039;&#039;&#039;人が読みとれる&#039;&#039;&#039;や[[wikipedia:Clean_URL|clean URLs]]は特定ページへのパスを人と検索エンジン両方に理解できるURLです。Joomla! バージョン1.5以降ではSEF URLを含む全フォーマットでもURLを作成し解析できます。Joomla!の場合、WebサーバのURL書換えに依存しない為、Joomla!はmod_rewriteモジュールを使用しているApache以外のサーバでも作動します。SEF URLは特定の固有パターンがありますがユーザはURL毎に短い説明(エイリアス)を含める事ができます。&lt;br /&gt;
&lt;br /&gt;
内部的にSEF URL(ドメイン名以降)のパスは&#039;&#039;&#039;ルート&#039;&#039;&#039;と呼ばれています。SEF URLの作成と解析処理は&#039;&#039;&#039;ルーティング&#039;&#039;&#039;と呼ばれ関連するコードは&#039;&#039;&#039;ルータ&#039;&#039;&#039;と呼ばれています。&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
ルーティングのよい例がサンプルデータ内の記事&amp;quot;Joomla!へようこそ&amp;quot;です。&lt;br /&gt;
&lt;br /&gt;
* SEF URLが無効のURL &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=1:welcome-to-joomla&amp;amp;catid=1:latest-news&amp;amp;Itemid=50&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* SEF URLが有効でmod_rewriteは無効 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php/the-­news/1-­latest­-news/1­-welcome­-to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* SEF URL,mod_rewrite両方有効 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
検索エンジンフレンドリーURLは&#039;&#039;&#039;グローバル設定&#039;&#039;&#039;内の&#039;&#039;&#039;検索エンジンフレンドリーURL&#039;&#039;&#039;で設定できますこのオプションはJoomla!1.6からデフォルトで有効になっています。詳細は[[S:MyLanguage/Enabling Search Engine Friendly (SEF) URLs|検索エンジンフレンドリーURLを有効化]]を参照して下さい。&lt;br /&gt;
&lt;br /&gt;
== FAQs ==&lt;br /&gt;
&lt;br /&gt;
=== URL内の数字はなんですか？ ===&lt;br /&gt;
古いURLと新しいURLの数字を比較してみましょう古いURLでは&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=1:welcome-to-joomla&amp;amp;catid=1:latest-news&amp;amp;Itemid=50&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
新しいURLでは:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
これらの数字は、Joomla!が必要とするパラメータでURLから取得し表示したいページを探します。 (この場合、最初の数字1はカテゴリーのID、二つ目の数字1は、記事のIDです)&lt;br /&gt;
&lt;br /&gt;
=== URLには &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt; がありませんこのファイルは削除していいですか？ ===&lt;br /&gt;
削除してはいけませんURLには&amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt;が含まれていませんが内部的にmod_rewriteが表示しないで元のパスへリダイレクトしているためです。&lt;br /&gt;
&lt;br /&gt;
=== [[S:MyLanguage/Alias|エイリアス]]とは？またどの様に作成されますか？ ===&lt;br /&gt;
エイリアスは記事、カテゴリ、セクション、メニューアイテム等のタイトルフィールドの下に表示されています。Joomla!は自動的にエイリアスを作成でき自動作成されたエイリアスはタイトルから始まりすべて小文字に変換されます。スペースやURLで使用できない文字はダッシュに変換されます。&lt;br /&gt;
&lt;br /&gt;
=== エイリアスを自分で作成したい ===&lt;br /&gt;
Joomla!が作成するエイリアスが気に入らない場合、エイリアスフィールドに好きな値を入れる事ができます。大抵の場合URL内に効果的なキーワードを使用するとSEO対策となるでしょう。記事のタイトルにこれらのキーワードを含みJoomla!で作成したり独自のエイリアスを作る事ができます。&lt;br /&gt;
&lt;br /&gt;
=== エイリアスはURLのどの部分に使用されますか？ ===&lt;br /&gt;
メニューアイテムではJoomla!はURLプラグとしてエイリアスを使用します。SEFのオプションを二つとも有効に設定しているとしてProductsというタイトルのメニューアイテムを作った場合のURLはexample.com/productsになります。&lt;br /&gt;
&lt;br /&gt;
Joomla!のルータが正しいページに移動する為、URL内のプライマリーキーを使用しています。上記例のメニューアイテムの種類がカテゴリブログの場合、記事タイトルや続きを読むリンクの3個のパーツ:&lt;br /&gt;
&lt;br /&gt;
* メニューアイテムのURL - example.com/products;&lt;br /&gt;
&lt;br /&gt;
* カテゴリのプライマリーキーとカテゴリのエイリアスを追加 - 32-fruit;&lt;br /&gt;
&lt;br /&gt;
* 記事のプライマリーキーと記事のエイリアスを追加 - 1-apple;&lt;br /&gt;
&lt;br /&gt;
完成したURL: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/products/32-fruit/1-apple&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SEF URLの数字をなくすには？ ===&lt;br /&gt;
SEF URLの数字はサイトトラフィック制御するJoomla!ルータが必要です。ルータロジックが安定したらサードパーティ製のシステムプラグインを選択しルータの機能を強化できるでしょう。その時にURLから数字は削除されます。&lt;br /&gt;
&lt;br /&gt;
== ルートフォーマットとルーティングの仕組み ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;このセクションではJoomla!コア(内蔵)のルーティングの仕組みを説明します。ルーティングエクステンションはシステムで作成するルートを変更する事があります。&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Route Formats ===&lt;br /&gt;
&lt;br /&gt;
To describe the Joomla! routing mechanism in more detail, we first need to pin down what we refer to as a &#039;&#039;&#039;route&#039;&#039;&#039;. Suppose that Joomla! has been installed in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/sites/first/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The installation path is generally referred to as the &#039;&#039;&#039;base URL&#039;&#039;&#039;. A possible example URL is &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/sites/first/products/32-fruit/1-apple&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The first part of this URL is the aforementioned base URL, and neither Joomla! nor any component router can create URLs with a different first part. The second part, &amp;lt;code&amp;gt;products/32-fruit/1-apple&amp;lt;/code&amp;gt;, is a &#039;&#039;&#039;route&#039;&#039;&#039;, consisting of three &#039;&#039;&#039;segment&#039;&#039;&#039;s.&lt;br /&gt;
&lt;br /&gt;
The first segment of a route is, for regular URLs, the alias of a menu item. The SEF URL is said to be &#039;&#039;&#039;routed through&#039;&#039;&#039; that menu item. The other segments are determined entirely by the router of the component that provides the type of the menu item. The &#039;&#039;Category - Blog&#039;&#039; menu item type, for example, is provided by the [[Content]] component, and therefore that component&#039;s router is responsible for building and parsing the remaining segments.&lt;br /&gt;
&lt;br /&gt;
It is also possible (for extensions) to ask the system to create a route without supplying a menu item to route through. In that case, the system will usually decide to create a special route that has the word &amp;lt;code&amp;gt;component&amp;lt;/code&amp;gt; as the first segment. These routes are created using a fixed format: the name of the component (without the leading &amp;lt;code&amp;gt;com_&amp;lt;/code&amp;gt;) is selected as the second segment and any parameters as the other segments.&lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
&lt;br /&gt;
It is important to note creating a menu item is the &#039;&#039;only&#039;&#039; way for a Joomla! user to define a route that leads to a specific component. It is, however, possible to create a route without showing it on the site (in a menu). An often-applied method is to create a menu item in a menu that isn&#039;t displayed anywhere. Such a menu is usually called a [[Menu|hidden menu]].&lt;br /&gt;
&lt;br /&gt;
The previous paragraph implies that it is not possible to make one component responsible for handling all routes. For example, it is not possible to specify that the URL &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/thealias&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; should display the Content item with the alias &amp;lt;code&amp;gt;thealias&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;thealias&amp;lt;/code&amp;gt; could be any word. If this needs to be done for a small number of articles, menu items can be created manually for these. Else a routing extension is necessary.&lt;br /&gt;
&lt;br /&gt;
This routing mechanism is therefore not as flexible as users sometimes require. On the other hand, it has one large advantage: it reduces the chance of ambiguous routes (routes that could lead to two different pages). Since the first segment of a route is always a menu item alias, the system immediately knows which component&#039;s router must be used to parse it.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
=== Handling Routes ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes the routing implementation. If you are a component developer, see [[Supporting SEF URLs in your component]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Joomla routes are created and resolved by [[JRouter|the JRouter class]]. This class looks in the component root of the currently active component (specified in the &amp;lt;code&amp;gt;option&amp;lt;/code&amp;gt; parameter in the query string) and includes the &amp;lt;code&amp;gt;router.php&amp;lt;/code&amp;gt; file in that component&#039;s root directory. It then calls one of two functions: one for creating the SEF URL and one for interpreting the SEF URL.&lt;br /&gt;
&lt;br /&gt;
The JRouter class is overridden by the Joomla CMS in &amp;lt;code&amp;gt;/includes/router.php&amp;lt;/code&amp;gt;. In this file the build and parse functions are overridden to properly build and parse the URLs for the Joomla CMS.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;router.php&amp;lt;/code&amp;gt; file in each component (for example, &amp;lt;code&amp;gt;/components/com_content/router.php&amp;lt;/code&amp;gt;) should contain the following two functions:&lt;br /&gt;
* ContentBuildRoute - this builds the SEF URL&lt;br /&gt;
** Parameters&lt;br /&gt;
*** $query - this is a named array containing the querystring variables&lt;br /&gt;
** Returns: an array of segments where each segment is separated by a &#039;/&#039; when later combined to create the actual URL (the items in the array should not contain &#039;/&#039; characters)&lt;br /&gt;
* ContentParseRoute - this interprets an SEF URL&lt;br /&gt;
** Parameters&lt;br /&gt;
*** $segments - this is an array that contains the segments of the URL requested.&lt;br /&gt;
** Returns: a name =&amp;gt; value array of the querystring variables that the link maps to&lt;br /&gt;
&lt;br /&gt;
=== The SEF Plugin ===&lt;br /&gt;
The Joomla &#039;&#039;System - SEF&#039;&#039; plugin inherits &amp;lt;code&amp;gt;JPlugin&amp;lt;/code&amp;gt; and implements the &amp;lt;code&amp;gt;onAfterRender()&amp;lt;/code&amp;gt; function. In this function the body of the response that will be sent to the browser is retrieved using &amp;lt;code&amp;gt;JResponse::getBody()&amp;lt;/code&amp;gt;. The body of the response is then searched for links containing &amp;lt;code&amp;gt;/index.php...&amp;lt;/code&amp;gt; and replaces them with a correct SEF URL by calling &amp;lt;code&amp;gt;JRoute::_(&#039;&#039;url&#039;&#039;)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
JRoute builds SEF URLs by instantiating a &amp;lt;code&amp;gt;JRouter&amp;lt;/code&amp;gt; object and requesting that it build the correct link from the passed in URL.&lt;br /&gt;
&lt;br /&gt;
=== Handling SEF URLs ===&lt;br /&gt;
By default the SEF URLs are handled by the &amp;lt;code&amp;gt;JRouterSite&amp;lt;/code&amp;gt; object (from &amp;lt;code&amp;gt;/includes/router.php&amp;lt;/code&amp;gt;) and is called by a call to &amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; in index.php. This call is made on the &amp;lt;code&amp;gt;$app&amp;lt;/code&amp;gt; variable which is actually an instance of &amp;lt;code&amp;gt;JSite&amp;lt;/code&amp;gt; (from &amp;lt;code&amp;gt;/includes/application.php&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; has a non-destructive result on the &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; array. That is, &amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; sets variables in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; by calling &amp;lt;code&amp;gt;JRequest::set()&amp;lt;/code&amp;gt; with the overwrite flag set to false. Thus if a variable name is returned from &amp;lt;code&amp;gt;JRouter::route()&amp;lt;/code&amp;gt; that is already in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt;, it will not put that value into &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt;. This allows for custom routing.&lt;br /&gt;
&lt;br /&gt;
=== Custom Routing ===&lt;br /&gt;
Joomla allows you to create your own routing mechanism. In order to create this mechanism you must have a plugin that overrides the &amp;lt;code&amp;gt;JPlugin::onAfterInitialise()&amp;lt;/code&amp;gt; function. This function then parses the URL and creates the needed variables in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; before the standard Joomla routing is done.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See [[Creating a System Plugin to augment JRouter]] for an example.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Search Engine Friendly URLs| ]]&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Search_Engine_Friendly_URLs/23/ja&amp;diff=114497</id>
		<title>Translations:Search Engine Friendly URLs/23/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Search_Engine_Friendly_URLs/23/ja&amp;diff=114497"/>
		<updated>2014-03-08T20:51:01Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;&amp;#039;&amp;#039;このセクションではJoomla!コア(内蔵)のルーティングの仕組みを説明します。ルーティングエクステンションはシステムで作成す...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;このセクションではJoomla!コア(内蔵)のルーティングの仕組みを説明します。ルーティングエクステンションはシステムで作成するルートを変更する事があります。&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Search_Engine_Friendly_URLs/ja&amp;diff=114496</id>
		<title>Search Engine Friendly URLs/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Search_Engine_Friendly_URLs/ja&amp;diff=114496"/>
		<updated>2014-03-08T20:45:53Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;== ルートフォーマットとルーティングの仕組み ==&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;検索エンジンフレンドリーURL&#039;&#039;&#039;,&#039;&#039;&#039;人が読みとれる&#039;&#039;&#039;や[[wikipedia:Clean_URL|clean URLs]]は特定ページへのパスを人と検索エンジン両方に理解できるURLです。Joomla! バージョン1.5以降ではSEF URLを含む全フォーマットでもURLを作成し解析できます。Joomla!の場合、WebサーバのURL書換えに依存しない為、Joomla!はmod_rewriteモジュールを使用しているApache以外のサーバでも作動します。SEF URLは特定の固有パターンがありますがユーザはURL毎に短い説明(エイリアス)を含める事ができます。&lt;br /&gt;
&lt;br /&gt;
内部的にSEF URL(ドメイン名以降)のパスは&#039;&#039;&#039;ルート&#039;&#039;&#039;と呼ばれています。SEF URLの作成と解析処理は&#039;&#039;&#039;ルーティング&#039;&#039;&#039;と呼ばれ関連するコードは&#039;&#039;&#039;ルータ&#039;&#039;&#039;と呼ばれています。&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
ルーティングのよい例がサンプルデータ内の記事&amp;quot;Joomla!へようこそ&amp;quot;です。&lt;br /&gt;
&lt;br /&gt;
* SEF URLが無効のURL &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=1:welcome-to-joomla&amp;amp;catid=1:latest-news&amp;amp;Itemid=50&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* SEF URLが有効でmod_rewriteは無効 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php/the-­news/1-­latest­-news/1­-welcome­-to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* SEF URL,mod_rewrite両方有効 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
検索エンジンフレンドリーURLは&#039;&#039;&#039;グローバル設定&#039;&#039;&#039;内の&#039;&#039;&#039;検索エンジンフレンドリーURL&#039;&#039;&#039;で設定できますこのオプションはJoomla!1.6からデフォルトで有効になっています。詳細は[[S:MyLanguage/Enabling Search Engine Friendly (SEF) URLs|検索エンジンフレンドリーURLを有効化]]を参照して下さい。&lt;br /&gt;
&lt;br /&gt;
== FAQs ==&lt;br /&gt;
&lt;br /&gt;
=== URL内の数字はなんですか？ ===&lt;br /&gt;
古いURLと新しいURLの数字を比較してみましょう古いURLでは&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=1:welcome-to-joomla&amp;amp;catid=1:latest-news&amp;amp;Itemid=50&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
新しいURLでは:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
これらの数字は、Joomla!が必要とするパラメータでURLから取得し表示したいページを探します。 (この場合、最初の数字1はカテゴリーのID、二つ目の数字1は、記事のIDです)&lt;br /&gt;
&lt;br /&gt;
=== URLには &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt; がありませんこのファイルは削除していいですか？ ===&lt;br /&gt;
削除してはいけませんURLには&amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt;が含まれていませんが内部的にmod_rewriteが表示しないで元のパスへリダイレクトしているためです。&lt;br /&gt;
&lt;br /&gt;
=== [[S:MyLanguage/Alias|エイリアス]]とは？またどの様に作成されますか？ ===&lt;br /&gt;
エイリアスは記事、カテゴリ、セクション、メニューアイテム等のタイトルフィールドの下に表示されています。Joomla!は自動的にエイリアスを作成でき自動作成されたエイリアスはタイトルから始まりすべて小文字に変換されます。スペースやURLで使用できない文字はダッシュに変換されます。&lt;br /&gt;
&lt;br /&gt;
=== エイリアスを自分で作成したい ===&lt;br /&gt;
Joomla!が作成するエイリアスが気に入らない場合、エイリアスフィールドに好きな値を入れる事ができます。大抵の場合URL内に効果的なキーワードを使用するとSEO対策となるでしょう。記事のタイトルにこれらのキーワードを含みJoomla!で作成したり独自のエイリアスを作る事ができます。&lt;br /&gt;
&lt;br /&gt;
=== エイリアスはURLのどの部分に使用されますか？ ===&lt;br /&gt;
メニューアイテムではJoomla!はURLプラグとしてエイリアスを使用します。SEFのオプションを二つとも有効に設定しているとしてProductsというタイトルのメニューアイテムを作った場合のURLはexample.com/productsになります。&lt;br /&gt;
&lt;br /&gt;
Joomla!のルータが正しいページに移動する為、URL内のプライマリーキーを使用しています。上記例のメニューアイテムの種類がカテゴリブログの場合、記事タイトルや続きを読むリンクの3個のパーツ:&lt;br /&gt;
&lt;br /&gt;
* メニューアイテムのURL - example.com/products;&lt;br /&gt;
&lt;br /&gt;
* カテゴリのプライマリーキーとカテゴリのエイリアスを追加 - 32-fruit;&lt;br /&gt;
&lt;br /&gt;
* 記事のプライマリーキーと記事のエイリアスを追加 - 1-apple;&lt;br /&gt;
&lt;br /&gt;
完成したURL: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/products/32-fruit/1-apple&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SEF URLの数字をなくすには？ ===&lt;br /&gt;
SEF URLの数字はサイトトラフィック制御するJoomla!ルータが必要です。ルータロジックが安定したらサードパーティ製のシステムプラグインを選択しルータの機能を強化できるでしょう。その時にURLから数字は削除されます。&lt;br /&gt;
&lt;br /&gt;
== ルートフォーマットとルーティングの仕組み ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes Joomla!&#039;s core (built-in) routing mechanism. Routing extensions may change the way routes are created on your system.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Route Formats ===&lt;br /&gt;
&lt;br /&gt;
To describe the Joomla! routing mechanism in more detail, we first need to pin down what we refer to as a &#039;&#039;&#039;route&#039;&#039;&#039;. Suppose that Joomla! has been installed in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/sites/first/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The installation path is generally referred to as the &#039;&#039;&#039;base URL&#039;&#039;&#039;. A possible example URL is &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/sites/first/products/32-fruit/1-apple&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The first part of this URL is the aforementioned base URL, and neither Joomla! nor any component router can create URLs with a different first part. The second part, &amp;lt;code&amp;gt;products/32-fruit/1-apple&amp;lt;/code&amp;gt;, is a &#039;&#039;&#039;route&#039;&#039;&#039;, consisting of three &#039;&#039;&#039;segment&#039;&#039;&#039;s.&lt;br /&gt;
&lt;br /&gt;
The first segment of a route is, for regular URLs, the alias of a menu item. The SEF URL is said to be &#039;&#039;&#039;routed through&#039;&#039;&#039; that menu item. The other segments are determined entirely by the router of the component that provides the type of the menu item. The &#039;&#039;Category - Blog&#039;&#039; menu item type, for example, is provided by the [[Content]] component, and therefore that component&#039;s router is responsible for building and parsing the remaining segments.&lt;br /&gt;
&lt;br /&gt;
It is also possible (for extensions) to ask the system to create a route without supplying a menu item to route through. In that case, the system will usually decide to create a special route that has the word &amp;lt;code&amp;gt;component&amp;lt;/code&amp;gt; as the first segment. These routes are created using a fixed format: the name of the component (without the leading &amp;lt;code&amp;gt;com_&amp;lt;/code&amp;gt;) is selected as the second segment and any parameters as the other segments.&lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
&lt;br /&gt;
It is important to note creating a menu item is the &#039;&#039;only&#039;&#039; way for a Joomla! user to define a route that leads to a specific component. It is, however, possible to create a route without showing it on the site (in a menu). An often-applied method is to create a menu item in a menu that isn&#039;t displayed anywhere. Such a menu is usually called a [[Menu|hidden menu]].&lt;br /&gt;
&lt;br /&gt;
The previous paragraph implies that it is not possible to make one component responsible for handling all routes. For example, it is not possible to specify that the URL &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/thealias&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; should display the Content item with the alias &amp;lt;code&amp;gt;thealias&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;thealias&amp;lt;/code&amp;gt; could be any word. If this needs to be done for a small number of articles, menu items can be created manually for these. Else a routing extension is necessary.&lt;br /&gt;
&lt;br /&gt;
This routing mechanism is therefore not as flexible as users sometimes require. On the other hand, it has one large advantage: it reduces the chance of ambiguous routes (routes that could lead to two different pages). Since the first segment of a route is always a menu item alias, the system immediately knows which component&#039;s router must be used to parse it.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
=== Handling Routes ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes the routing implementation. If you are a component developer, see [[Supporting SEF URLs in your component]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Joomla routes are created and resolved by [[JRouter|the JRouter class]]. This class looks in the component root of the currently active component (specified in the &amp;lt;code&amp;gt;option&amp;lt;/code&amp;gt; parameter in the query string) and includes the &amp;lt;code&amp;gt;router.php&amp;lt;/code&amp;gt; file in that component&#039;s root directory. It then calls one of two functions: one for creating the SEF URL and one for interpreting the SEF URL.&lt;br /&gt;
&lt;br /&gt;
The JRouter class is overridden by the Joomla CMS in &amp;lt;code&amp;gt;/includes/router.php&amp;lt;/code&amp;gt;. In this file the build and parse functions are overridden to properly build and parse the URLs for the Joomla CMS.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;router.php&amp;lt;/code&amp;gt; file in each component (for example, &amp;lt;code&amp;gt;/components/com_content/router.php&amp;lt;/code&amp;gt;) should contain the following two functions:&lt;br /&gt;
* ContentBuildRoute - this builds the SEF URL&lt;br /&gt;
** Parameters&lt;br /&gt;
*** $query - this is a named array containing the querystring variables&lt;br /&gt;
** Returns: an array of segments where each segment is separated by a &#039;/&#039; when later combined to create the actual URL (the items in the array should not contain &#039;/&#039; characters)&lt;br /&gt;
* ContentParseRoute - this interprets an SEF URL&lt;br /&gt;
** Parameters&lt;br /&gt;
*** $segments - this is an array that contains the segments of the URL requested.&lt;br /&gt;
** Returns: a name =&amp;gt; value array of the querystring variables that the link maps to&lt;br /&gt;
&lt;br /&gt;
=== The SEF Plugin ===&lt;br /&gt;
The Joomla &#039;&#039;System - SEF&#039;&#039; plugin inherits &amp;lt;code&amp;gt;JPlugin&amp;lt;/code&amp;gt; and implements the &amp;lt;code&amp;gt;onAfterRender()&amp;lt;/code&amp;gt; function. In this function the body of the response that will be sent to the browser is retrieved using &amp;lt;code&amp;gt;JResponse::getBody()&amp;lt;/code&amp;gt;. The body of the response is then searched for links containing &amp;lt;code&amp;gt;/index.php...&amp;lt;/code&amp;gt; and replaces them with a correct SEF URL by calling &amp;lt;code&amp;gt;JRoute::_(&#039;&#039;url&#039;&#039;)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
JRoute builds SEF URLs by instantiating a &amp;lt;code&amp;gt;JRouter&amp;lt;/code&amp;gt; object and requesting that it build the correct link from the passed in URL.&lt;br /&gt;
&lt;br /&gt;
=== Handling SEF URLs ===&lt;br /&gt;
By default the SEF URLs are handled by the &amp;lt;code&amp;gt;JRouterSite&amp;lt;/code&amp;gt; object (from &amp;lt;code&amp;gt;/includes/router.php&amp;lt;/code&amp;gt;) and is called by a call to &amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; in index.php. This call is made on the &amp;lt;code&amp;gt;$app&amp;lt;/code&amp;gt; variable which is actually an instance of &amp;lt;code&amp;gt;JSite&amp;lt;/code&amp;gt; (from &amp;lt;code&amp;gt;/includes/application.php&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; has a non-destructive result on the &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; array. That is, &amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; sets variables in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; by calling &amp;lt;code&amp;gt;JRequest::set()&amp;lt;/code&amp;gt; with the overwrite flag set to false. Thus if a variable name is returned from &amp;lt;code&amp;gt;JRouter::route()&amp;lt;/code&amp;gt; that is already in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt;, it will not put that value into &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt;. This allows for custom routing.&lt;br /&gt;
&lt;br /&gt;
=== Custom Routing ===&lt;br /&gt;
Joomla allows you to create your own routing mechanism. In order to create this mechanism you must have a plugin that overrides the &amp;lt;code&amp;gt;JPlugin::onAfterInitialise()&amp;lt;/code&amp;gt; function. This function then parses the URL and creates the needed variables in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; before the standard Joomla routing is done.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See [[Creating a System Plugin to augment JRouter]] for an example.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Search Engine Friendly URLs| ]]&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Search_Engine_Friendly_URLs/22/ja&amp;diff=114495</id>
		<title>Translations:Search Engine Friendly URLs/22/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Search_Engine_Friendly_URLs/22/ja&amp;diff=114495"/>
		<updated>2014-03-08T20:45:52Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;== ルートフォーマットとルーティングの仕組み ==&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ルートフォーマットとルーティングの仕組み ==&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Search_Engine_Friendly_URLs/ja&amp;diff=114315</id>
		<title>Search Engine Friendly URLs/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Search_Engine_Friendly_URLs/ja&amp;diff=114315"/>
		<updated>2014-03-08T10:37:56Z</updated>

		<summary type="html">&lt;p&gt;Nori: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;検索エンジンフレンドリーURL&#039;&#039;&#039;,&#039;&#039;&#039;人が読みとれる&#039;&#039;&#039;や[[wikipedia:Clean_URL|clean URLs]]は特定ページへのパスを人と検索エンジン両方に理解できるURLです。Joomla! バージョン1.5以降ではSEF URLを含む全フォーマットでもURLを作成し解析できます。Joomla!の場合、WebサーバのURL書換えに依存しない為、Joomla!はmod_rewriteモジュールを使用しているApache以外のサーバでも作動します。SEF URLは特定の固有パターンがありますがユーザはURL毎に短い説明(エイリアス)を含める事ができます。&lt;br /&gt;
&lt;br /&gt;
内部的にSEF URL(ドメイン名以降)のパスは&#039;&#039;&#039;ルート&#039;&#039;&#039;と呼ばれています。SEF URLの作成と解析処理は&#039;&#039;&#039;ルーティング&#039;&#039;&#039;と呼ばれ関連するコードは&#039;&#039;&#039;ルータ&#039;&#039;&#039;と呼ばれています。&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
ルーティングのよい例がサンプルデータ内の記事&amp;quot;Joomla!へようこそ&amp;quot;です。&lt;br /&gt;
&lt;br /&gt;
* SEF URLが無効のURL &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=1:welcome-to-joomla&amp;amp;catid=1:latest-news&amp;amp;Itemid=50&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* SEF URLが有効でmod_rewriteは無効 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php/the-­news/1-­latest­-news/1­-welcome­-to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* SEF URL,mod_rewrite両方有効 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
検索エンジンフレンドリーURLは&#039;&#039;&#039;グローバル設定&#039;&#039;&#039;内の&#039;&#039;&#039;検索エンジンフレンドリーURL&#039;&#039;&#039;で設定できますこのオプションはJoomla!1.6からデフォルトで有効になっています。詳細は[[S:MyLanguage/Enabling Search Engine Friendly (SEF) URLs|検索エンジンフレンドリーURLを有効化]]を参照して下さい。&lt;br /&gt;
&lt;br /&gt;
== FAQs ==&lt;br /&gt;
&lt;br /&gt;
=== URL内の数字はなんですか？ ===&lt;br /&gt;
古いURLと新しいURLの数字を比較してみましょう古いURLでは&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=1:welcome-to-joomla&amp;amp;catid=1:latest-news&amp;amp;Itemid=50&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
新しいURLでは:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
これらの数字は、Joomla!が必要とするパラメータでURLから取得し表示したいページを探します。 (この場合、最初の数字1はカテゴリーのID、二つ目の数字1は、記事のIDです)&lt;br /&gt;
&lt;br /&gt;
=== URLには &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt; がありませんこのファイルは削除していいですか？ ===&lt;br /&gt;
削除してはいけませんURLには&amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt;が含まれていませんが内部的にmod_rewriteが表示しないで元のパスへリダイレクトしているためです。&lt;br /&gt;
&lt;br /&gt;
=== [[S:MyLanguage/Alias|エイリアス]]とは？またどの様に作成されますか？ ===&lt;br /&gt;
エイリアスは記事、カテゴリ、セクション、メニューアイテム等のタイトルフィールドの下に表示されています。Joomla!は自動的にエイリアスを作成でき自動作成されたエイリアスはタイトルから始まりすべて小文字に変換されます。スペースやURLで使用できない文字はダッシュに変換されます。&lt;br /&gt;
&lt;br /&gt;
=== エイリアスを自分で作成したい ===&lt;br /&gt;
Joomla!が作成するエイリアスが気に入らない場合、エイリアスフィールドに好きな値を入れる事ができます。大抵の場合URL内に効果的なキーワードを使用するとSEO対策となるでしょう。記事のタイトルにこれらのキーワードを含みJoomla!で作成したり独自のエイリアスを作る事ができます。&lt;br /&gt;
&lt;br /&gt;
=== エイリアスはURLのどの部分に使用されますか？ ===&lt;br /&gt;
メニューアイテムではJoomla!はURLプラグとしてエイリアスを使用します。SEFのオプションを二つとも有効に設定しているとしてProductsというタイトルのメニューアイテムを作った場合のURLはexample.com/productsになります。&lt;br /&gt;
&lt;br /&gt;
Joomla!のルータが正しいページに移動する為、URL内のプライマリーキーを使用しています。上記例のメニューアイテムの種類がカテゴリブログの場合、記事タイトルや続きを読むリンクの3個のパーツ:&lt;br /&gt;
&lt;br /&gt;
* メニューアイテムのURL - example.com/products;&lt;br /&gt;
&lt;br /&gt;
* カテゴリのプライマリーキーとカテゴリのエイリアスを追加 - 32-fruit;&lt;br /&gt;
&lt;br /&gt;
* 記事のプライマリーキーと記事のエイリアスを追加 - 1-apple;&lt;br /&gt;
&lt;br /&gt;
完成したURL: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/products/32-fruit/1-apple&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SEF URLの数字をなくすには？ ===&lt;br /&gt;
SEF URLの数字はサイトトラフィック制御するJoomla!ルータが必要です。ルータロジックが安定したらサードパーティ製のシステムプラグインを選択しルータの機能を強化できるでしょう。その時にURLから数字は削除されます。&lt;br /&gt;
&lt;br /&gt;
== Route Formats and the Routing Mechanism ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes Joomla!&#039;s core (built-in) routing mechanism. Routing extensions may change the way routes are created on your system.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Route Formats ===&lt;br /&gt;
&lt;br /&gt;
To describe the Joomla! routing mechanism in more detail, we first need to pin down what we refer to as a &#039;&#039;&#039;route&#039;&#039;&#039;. Suppose that Joomla! has been installed in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/sites/first/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The installation path is generally referred to as the &#039;&#039;&#039;base URL&#039;&#039;&#039;. A possible example URL is &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/sites/first/products/32-fruit/1-apple&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The first part of this URL is the aforementioned base URL, and neither Joomla! nor any component router can create URLs with a different first part. The second part, &amp;lt;code&amp;gt;products/32-fruit/1-apple&amp;lt;/code&amp;gt;, is a &#039;&#039;&#039;route&#039;&#039;&#039;, consisting of three &#039;&#039;&#039;segment&#039;&#039;&#039;s.&lt;br /&gt;
&lt;br /&gt;
The first segment of a route is, for regular URLs, the alias of a menu item. The SEF URL is said to be &#039;&#039;&#039;routed through&#039;&#039;&#039; that menu item. The other segments are determined entirely by the router of the component that provides the type of the menu item. The &#039;&#039;Category - Blog&#039;&#039; menu item type, for example, is provided by the [[Content]] component, and therefore that component&#039;s router is responsible for building and parsing the remaining segments.&lt;br /&gt;
&lt;br /&gt;
It is also possible (for extensions) to ask the system to create a route without supplying a menu item to route through. In that case, the system will usually decide to create a special route that has the word &amp;lt;code&amp;gt;component&amp;lt;/code&amp;gt; as the first segment. These routes are created using a fixed format: the name of the component (without the leading &amp;lt;code&amp;gt;com_&amp;lt;/code&amp;gt;) is selected as the second segment and any parameters as the other segments.&lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
&lt;br /&gt;
It is important to note creating a menu item is the &#039;&#039;only&#039;&#039; way for a Joomla! user to define a route that leads to a specific component. It is, however, possible to create a route without showing it on the site (in a menu). An often-applied method is to create a menu item in a menu that isn&#039;t displayed anywhere. Such a menu is usually called a [[Menu|hidden menu]].&lt;br /&gt;
&lt;br /&gt;
The previous paragraph implies that it is not possible to make one component responsible for handling all routes. For example, it is not possible to specify that the URL &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/thealias&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; should display the Content item with the alias &amp;lt;code&amp;gt;thealias&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;thealias&amp;lt;/code&amp;gt; could be any word. If this needs to be done for a small number of articles, menu items can be created manually for these. Else a routing extension is necessary.&lt;br /&gt;
&lt;br /&gt;
This routing mechanism is therefore not as flexible as users sometimes require. On the other hand, it has one large advantage: it reduces the chance of ambiguous routes (routes that could lead to two different pages). Since the first segment of a route is always a menu item alias, the system immediately knows which component&#039;s router must be used to parse it.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
=== Handling Routes ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes the routing implementation. If you are a component developer, see [[Supporting SEF URLs in your component]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Joomla routes are created and resolved by [[JRouter|the JRouter class]]. This class looks in the component root of the currently active component (specified in the &amp;lt;code&amp;gt;option&amp;lt;/code&amp;gt; parameter in the query string) and includes the &amp;lt;code&amp;gt;router.php&amp;lt;/code&amp;gt; file in that component&#039;s root directory. It then calls one of two functions: one for creating the SEF URL and one for interpreting the SEF URL.&lt;br /&gt;
&lt;br /&gt;
The JRouter class is overridden by the Joomla CMS in &amp;lt;code&amp;gt;/includes/router.php&amp;lt;/code&amp;gt;. In this file the build and parse functions are overridden to properly build and parse the URLs for the Joomla CMS.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;router.php&amp;lt;/code&amp;gt; file in each component (for example, &amp;lt;code&amp;gt;/components/com_content/router.php&amp;lt;/code&amp;gt;) should contain the following two functions:&lt;br /&gt;
* ContentBuildRoute - this builds the SEF URL&lt;br /&gt;
** Parameters&lt;br /&gt;
*** $query - this is a named array containing the querystring variables&lt;br /&gt;
** Returns: an array of segments where each segment is separated by a &#039;/&#039; when later combined to create the actual URL (the items in the array should not contain &#039;/&#039; characters)&lt;br /&gt;
* ContentParseRoute - this interprets an SEF URL&lt;br /&gt;
** Parameters&lt;br /&gt;
*** $segments - this is an array that contains the segments of the URL requested.&lt;br /&gt;
** Returns: a name =&amp;gt; value array of the querystring variables that the link maps to&lt;br /&gt;
&lt;br /&gt;
=== The SEF Plugin ===&lt;br /&gt;
The Joomla &#039;&#039;System - SEF&#039;&#039; plugin inherits &amp;lt;code&amp;gt;JPlugin&amp;lt;/code&amp;gt; and implements the &amp;lt;code&amp;gt;onAfterRender()&amp;lt;/code&amp;gt; function. In this function the body of the response that will be sent to the browser is retrieved using &amp;lt;code&amp;gt;JResponse::getBody()&amp;lt;/code&amp;gt;. The body of the response is then searched for links containing &amp;lt;code&amp;gt;/index.php...&amp;lt;/code&amp;gt; and replaces them with a correct SEF URL by calling &amp;lt;code&amp;gt;JRoute::_(&#039;&#039;url&#039;&#039;)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
JRoute builds SEF URLs by instantiating a &amp;lt;code&amp;gt;JRouter&amp;lt;/code&amp;gt; object and requesting that it build the correct link from the passed in URL.&lt;br /&gt;
&lt;br /&gt;
=== Handling SEF URLs ===&lt;br /&gt;
By default the SEF URLs are handled by the &amp;lt;code&amp;gt;JRouterSite&amp;lt;/code&amp;gt; object (from &amp;lt;code&amp;gt;/includes/router.php&amp;lt;/code&amp;gt;) and is called by a call to &amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; in index.php. This call is made on the &amp;lt;code&amp;gt;$app&amp;lt;/code&amp;gt; variable which is actually an instance of &amp;lt;code&amp;gt;JSite&amp;lt;/code&amp;gt; (from &amp;lt;code&amp;gt;/includes/application.php&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; has a non-destructive result on the &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; array. That is, &amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; sets variables in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; by calling &amp;lt;code&amp;gt;JRequest::set()&amp;lt;/code&amp;gt; with the overwrite flag set to false. Thus if a variable name is returned from &amp;lt;code&amp;gt;JRouter::route()&amp;lt;/code&amp;gt; that is already in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt;, it will not put that value into &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt;. This allows for custom routing.&lt;br /&gt;
&lt;br /&gt;
=== Custom Routing ===&lt;br /&gt;
Joomla allows you to create your own routing mechanism. In order to create this mechanism you must have a plugin that overrides the &amp;lt;code&amp;gt;JPlugin::onAfterInitialise()&amp;lt;/code&amp;gt; function. This function then parses the URL and creates the needed variables in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; before the standard Joomla routing is done.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See [[Creating a System Plugin to augment JRouter]] for an example.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Search Engine Friendly URLs| ]]&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Search_Engine_Friendly_URLs/11/ja&amp;diff=114314</id>
		<title>Translations:Search Engine Friendly URLs/11/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Search_Engine_Friendly_URLs/11/ja&amp;diff=114314"/>
		<updated>2014-03-08T10:37:56Z</updated>

		<summary type="html">&lt;p&gt;Nori: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;これらの数字は、Joomla!が必要とするパラメータでURLから取得し表示したいページを探します。 (この場合、最初の数字1はカテゴリーのID、二つ目の数字1は、記事のIDです)&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Search_Engine_Friendly_URLs/ja&amp;diff=114313</id>
		<title>Search Engine Friendly URLs/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Search_Engine_Friendly_URLs/ja&amp;diff=114313"/>
		<updated>2014-03-08T10:35:48Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;=== SEF URLの数字をなくすには？ === SEF URLの数字はサイトトラフィック制御するJoomla!ルータが必要です。ルータロジックが安定した...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;検索エンジンフレンドリーURL&#039;&#039;&#039;,&#039;&#039;&#039;人が読みとれる&#039;&#039;&#039;や[[wikipedia:Clean_URL|clean URLs]]は特定ページへのパスを人と検索エンジン両方に理解できるURLです。Joomla! バージョン1.5以降ではSEF URLを含む全フォーマットでもURLを作成し解析できます。Joomla!の場合、WebサーバのURL書換えに依存しない為、Joomla!はmod_rewriteモジュールを使用しているApache以外のサーバでも作動します。SEF URLは特定の固有パターンがありますがユーザはURL毎に短い説明(エイリアス)を含める事ができます。&lt;br /&gt;
&lt;br /&gt;
内部的にSEF URL(ドメイン名以降)のパスは&#039;&#039;&#039;ルート&#039;&#039;&#039;と呼ばれています。SEF URLの作成と解析処理は&#039;&#039;&#039;ルーティング&#039;&#039;&#039;と呼ばれ関連するコードは&#039;&#039;&#039;ルータ&#039;&#039;&#039;と呼ばれています。&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
ルーティングのよい例がサンプルデータ内の記事&amp;quot;Joomla!へようこそ&amp;quot;です。&lt;br /&gt;
&lt;br /&gt;
* SEF URLが無効のURL &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=1:welcome-to-joomla&amp;amp;catid=1:latest-news&amp;amp;Itemid=50&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* SEF URLが有効でmod_rewriteは無効 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php/the-­news/1-­latest­-news/1­-welcome­-to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* SEF URL,mod_rewrite両方有効 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
検索エンジンフレンドリーURLは&#039;&#039;&#039;グローバル設定&#039;&#039;&#039;内の&#039;&#039;&#039;検索エンジンフレンドリーURL&#039;&#039;&#039;で設定できますこのオプションはJoomla!1.6からデフォルトで有効になっています。詳細は[[S:MyLanguage/Enabling Search Engine Friendly (SEF) URLs|検索エンジンフレンドリーURLを有効化]]を参照して下さい。&lt;br /&gt;
&lt;br /&gt;
== FAQs ==&lt;br /&gt;
&lt;br /&gt;
=== URL内の数字はなんですか？ ===&lt;br /&gt;
古いURLと新しいURLの数字を比較してみましょう古いURLでは&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=1:welcome-to-joomla&amp;amp;catid=1:latest-news&amp;amp;Itemid=50&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
新しいURLでは:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These numbers are the parameters that are needed by Joomla! to get the internal URL and show the page you want to see. (In this case, the first numeral one is the ID of the category, the second numeral one is the ID of the article.)&lt;br /&gt;
&lt;br /&gt;
=== URLには &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt; がありませんこのファイルは削除していいですか？ ===&lt;br /&gt;
削除してはいけませんURLには&amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt;が含まれていませんが内部的にmod_rewriteが表示しないで元のパスへリダイレクトしているためです。&lt;br /&gt;
&lt;br /&gt;
=== [[S:MyLanguage/Alias|エイリアス]]とは？またどの様に作成されますか？ ===&lt;br /&gt;
エイリアスは記事、カテゴリ、セクション、メニューアイテム等のタイトルフィールドの下に表示されています。Joomla!は自動的にエイリアスを作成でき自動作成されたエイリアスはタイトルから始まりすべて小文字に変換されます。スペースやURLで使用できない文字はダッシュに変換されます。&lt;br /&gt;
&lt;br /&gt;
=== エイリアスを自分で作成したい ===&lt;br /&gt;
Joomla!が作成するエイリアスが気に入らない場合、エイリアスフィールドに好きな値を入れる事ができます。大抵の場合URL内に効果的なキーワードを使用するとSEO対策となるでしょう。記事のタイトルにこれらのキーワードを含みJoomla!で作成したり独自のエイリアスを作る事ができます。&lt;br /&gt;
&lt;br /&gt;
=== エイリアスはURLのどの部分に使用されますか？ ===&lt;br /&gt;
メニューアイテムではJoomla!はURLプラグとしてエイリアスを使用します。SEFのオプションを二つとも有効に設定しているとしてProductsというタイトルのメニューアイテムを作った場合のURLはexample.com/productsになります。&lt;br /&gt;
&lt;br /&gt;
Joomla!のルータが正しいページに移動する為、URL内のプライマリーキーを使用しています。上記例のメニューアイテムの種類がカテゴリブログの場合、記事タイトルや続きを読むリンクの3個のパーツ:&lt;br /&gt;
&lt;br /&gt;
* メニューアイテムのURL - example.com/products;&lt;br /&gt;
&lt;br /&gt;
* カテゴリのプライマリーキーとカテゴリのエイリアスを追加 - 32-fruit;&lt;br /&gt;
&lt;br /&gt;
* 記事のプライマリーキーと記事のエイリアスを追加 - 1-apple;&lt;br /&gt;
&lt;br /&gt;
完成したURL: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/products/32-fruit/1-apple&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SEF URLの数字をなくすには？ ===&lt;br /&gt;
SEF URLの数字はサイトトラフィック制御するJoomla!ルータが必要です。ルータロジックが安定したらサードパーティ製のシステムプラグインを選択しルータの機能を強化できるでしょう。その時にURLから数字は削除されます。&lt;br /&gt;
&lt;br /&gt;
== Route Formats and the Routing Mechanism ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes Joomla!&#039;s core (built-in) routing mechanism. Routing extensions may change the way routes are created on your system.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Route Formats ===&lt;br /&gt;
&lt;br /&gt;
To describe the Joomla! routing mechanism in more detail, we first need to pin down what we refer to as a &#039;&#039;&#039;route&#039;&#039;&#039;. Suppose that Joomla! has been installed in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/sites/first/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The installation path is generally referred to as the &#039;&#039;&#039;base URL&#039;&#039;&#039;. A possible example URL is &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/sites/first/products/32-fruit/1-apple&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The first part of this URL is the aforementioned base URL, and neither Joomla! nor any component router can create URLs with a different first part. The second part, &amp;lt;code&amp;gt;products/32-fruit/1-apple&amp;lt;/code&amp;gt;, is a &#039;&#039;&#039;route&#039;&#039;&#039;, consisting of three &#039;&#039;&#039;segment&#039;&#039;&#039;s.&lt;br /&gt;
&lt;br /&gt;
The first segment of a route is, for regular URLs, the alias of a menu item. The SEF URL is said to be &#039;&#039;&#039;routed through&#039;&#039;&#039; that menu item. The other segments are determined entirely by the router of the component that provides the type of the menu item. The &#039;&#039;Category - Blog&#039;&#039; menu item type, for example, is provided by the [[Content]] component, and therefore that component&#039;s router is responsible for building and parsing the remaining segments.&lt;br /&gt;
&lt;br /&gt;
It is also possible (for extensions) to ask the system to create a route without supplying a menu item to route through. In that case, the system will usually decide to create a special route that has the word &amp;lt;code&amp;gt;component&amp;lt;/code&amp;gt; as the first segment. These routes are created using a fixed format: the name of the component (without the leading &amp;lt;code&amp;gt;com_&amp;lt;/code&amp;gt;) is selected as the second segment and any parameters as the other segments.&lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
&lt;br /&gt;
It is important to note creating a menu item is the &#039;&#039;only&#039;&#039; way for a Joomla! user to define a route that leads to a specific component. It is, however, possible to create a route without showing it on the site (in a menu). An often-applied method is to create a menu item in a menu that isn&#039;t displayed anywhere. Such a menu is usually called a [[Menu|hidden menu]].&lt;br /&gt;
&lt;br /&gt;
The previous paragraph implies that it is not possible to make one component responsible for handling all routes. For example, it is not possible to specify that the URL &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/thealias&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; should display the Content item with the alias &amp;lt;code&amp;gt;thealias&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;thealias&amp;lt;/code&amp;gt; could be any word. If this needs to be done for a small number of articles, menu items can be created manually for these. Else a routing extension is necessary.&lt;br /&gt;
&lt;br /&gt;
This routing mechanism is therefore not as flexible as users sometimes require. On the other hand, it has one large advantage: it reduces the chance of ambiguous routes (routes that could lead to two different pages). Since the first segment of a route is always a menu item alias, the system immediately knows which component&#039;s router must be used to parse it.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
=== Handling Routes ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes the routing implementation. If you are a component developer, see [[Supporting SEF URLs in your component]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Joomla routes are created and resolved by [[JRouter|the JRouter class]]. This class looks in the component root of the currently active component (specified in the &amp;lt;code&amp;gt;option&amp;lt;/code&amp;gt; parameter in the query string) and includes the &amp;lt;code&amp;gt;router.php&amp;lt;/code&amp;gt; file in that component&#039;s root directory. It then calls one of two functions: one for creating the SEF URL and one for interpreting the SEF URL.&lt;br /&gt;
&lt;br /&gt;
The JRouter class is overridden by the Joomla CMS in &amp;lt;code&amp;gt;/includes/router.php&amp;lt;/code&amp;gt;. In this file the build and parse functions are overridden to properly build and parse the URLs for the Joomla CMS.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;router.php&amp;lt;/code&amp;gt; file in each component (for example, &amp;lt;code&amp;gt;/components/com_content/router.php&amp;lt;/code&amp;gt;) should contain the following two functions:&lt;br /&gt;
* ContentBuildRoute - this builds the SEF URL&lt;br /&gt;
** Parameters&lt;br /&gt;
*** $query - this is a named array containing the querystring variables&lt;br /&gt;
** Returns: an array of segments where each segment is separated by a &#039;/&#039; when later combined to create the actual URL (the items in the array should not contain &#039;/&#039; characters)&lt;br /&gt;
* ContentParseRoute - this interprets an SEF URL&lt;br /&gt;
** Parameters&lt;br /&gt;
*** $segments - this is an array that contains the segments of the URL requested.&lt;br /&gt;
** Returns: a name =&amp;gt; value array of the querystring variables that the link maps to&lt;br /&gt;
&lt;br /&gt;
=== The SEF Plugin ===&lt;br /&gt;
The Joomla &#039;&#039;System - SEF&#039;&#039; plugin inherits &amp;lt;code&amp;gt;JPlugin&amp;lt;/code&amp;gt; and implements the &amp;lt;code&amp;gt;onAfterRender()&amp;lt;/code&amp;gt; function. In this function the body of the response that will be sent to the browser is retrieved using &amp;lt;code&amp;gt;JResponse::getBody()&amp;lt;/code&amp;gt;. The body of the response is then searched for links containing &amp;lt;code&amp;gt;/index.php...&amp;lt;/code&amp;gt; and replaces them with a correct SEF URL by calling &amp;lt;code&amp;gt;JRoute::_(&#039;&#039;url&#039;&#039;)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
JRoute builds SEF URLs by instantiating a &amp;lt;code&amp;gt;JRouter&amp;lt;/code&amp;gt; object and requesting that it build the correct link from the passed in URL.&lt;br /&gt;
&lt;br /&gt;
=== Handling SEF URLs ===&lt;br /&gt;
By default the SEF URLs are handled by the &amp;lt;code&amp;gt;JRouterSite&amp;lt;/code&amp;gt; object (from &amp;lt;code&amp;gt;/includes/router.php&amp;lt;/code&amp;gt;) and is called by a call to &amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; in index.php. This call is made on the &amp;lt;code&amp;gt;$app&amp;lt;/code&amp;gt; variable which is actually an instance of &amp;lt;code&amp;gt;JSite&amp;lt;/code&amp;gt; (from &amp;lt;code&amp;gt;/includes/application.php&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; has a non-destructive result on the &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; array. That is, &amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; sets variables in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; by calling &amp;lt;code&amp;gt;JRequest::set()&amp;lt;/code&amp;gt; with the overwrite flag set to false. Thus if a variable name is returned from &amp;lt;code&amp;gt;JRouter::route()&amp;lt;/code&amp;gt; that is already in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt;, it will not put that value into &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt;. This allows for custom routing.&lt;br /&gt;
&lt;br /&gt;
=== Custom Routing ===&lt;br /&gt;
Joomla allows you to create your own routing mechanism. In order to create this mechanism you must have a plugin that overrides the &amp;lt;code&amp;gt;JPlugin::onAfterInitialise()&amp;lt;/code&amp;gt; function. This function then parses the URL and creates the needed variables in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; before the standard Joomla routing is done.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See [[Creating a System Plugin to augment JRouter]] for an example.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Search Engine Friendly URLs| ]]&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Search_Engine_Friendly_URLs/21/ja&amp;diff=114312</id>
		<title>Translations:Search Engine Friendly URLs/21/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Search_Engine_Friendly_URLs/21/ja&amp;diff=114312"/>
		<updated>2014-03-08T10:35:47Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;=== SEF URLの数字をなくすには？ === SEF URLの数字はサイトトラフィック制御するJoomla!ルータが必要です。ルータロジックが安定した...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== SEF URLの数字をなくすには？ ===&lt;br /&gt;
SEF URLの数字はサイトトラフィック制御するJoomla!ルータが必要です。ルータロジックが安定したらサードパーティ製のシステムプラグインを選択しルータの機能を強化できるでしょう。その時にURLから数字は削除されます。&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Search_Engine_Friendly_URLs/ja&amp;diff=114311</id>
		<title>Search Engine Friendly URLs/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Search_Engine_Friendly_URLs/ja&amp;diff=114311"/>
		<updated>2014-03-08T10:29:18Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;完成したURL: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/products/32-fruit/1-apple&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;検索エンジンフレンドリーURL&#039;&#039;&#039;,&#039;&#039;&#039;人が読みとれる&#039;&#039;&#039;や[[wikipedia:Clean_URL|clean URLs]]は特定ページへのパスを人と検索エンジン両方に理解できるURLです。Joomla! バージョン1.5以降ではSEF URLを含む全フォーマットでもURLを作成し解析できます。Joomla!の場合、WebサーバのURL書換えに依存しない為、Joomla!はmod_rewriteモジュールを使用しているApache以外のサーバでも作動します。SEF URLは特定の固有パターンがありますがユーザはURL毎に短い説明(エイリアス)を含める事ができます。&lt;br /&gt;
&lt;br /&gt;
内部的にSEF URL(ドメイン名以降)のパスは&#039;&#039;&#039;ルート&#039;&#039;&#039;と呼ばれています。SEF URLの作成と解析処理は&#039;&#039;&#039;ルーティング&#039;&#039;&#039;と呼ばれ関連するコードは&#039;&#039;&#039;ルータ&#039;&#039;&#039;と呼ばれています。&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
ルーティングのよい例がサンプルデータ内の記事&amp;quot;Joomla!へようこそ&amp;quot;です。&lt;br /&gt;
&lt;br /&gt;
* SEF URLが無効のURL &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=1:welcome-to-joomla&amp;amp;catid=1:latest-news&amp;amp;Itemid=50&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* SEF URLが有効でmod_rewriteは無効 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php/the-­news/1-­latest­-news/1­-welcome­-to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* SEF URL,mod_rewrite両方有効 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
検索エンジンフレンドリーURLは&#039;&#039;&#039;グローバル設定&#039;&#039;&#039;内の&#039;&#039;&#039;検索エンジンフレンドリーURL&#039;&#039;&#039;で設定できますこのオプションはJoomla!1.6からデフォルトで有効になっています。詳細は[[S:MyLanguage/Enabling Search Engine Friendly (SEF) URLs|検索エンジンフレンドリーURLを有効化]]を参照して下さい。&lt;br /&gt;
&lt;br /&gt;
== FAQs ==&lt;br /&gt;
&lt;br /&gt;
=== URL内の数字はなんですか？ ===&lt;br /&gt;
古いURLと新しいURLの数字を比較してみましょう古いURLでは&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=1:welcome-to-joomla&amp;amp;catid=1:latest-news&amp;amp;Itemid=50&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
新しいURLでは:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These numbers are the parameters that are needed by Joomla! to get the internal URL and show the page you want to see. (In this case, the first numeral one is the ID of the category, the second numeral one is the ID of the article.)&lt;br /&gt;
&lt;br /&gt;
=== URLには &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt; がありませんこのファイルは削除していいですか？ ===&lt;br /&gt;
削除してはいけませんURLには&amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt;が含まれていませんが内部的にmod_rewriteが表示しないで元のパスへリダイレクトしているためです。&lt;br /&gt;
&lt;br /&gt;
=== [[S:MyLanguage/Alias|エイリアス]]とは？またどの様に作成されますか？ ===&lt;br /&gt;
エイリアスは記事、カテゴリ、セクション、メニューアイテム等のタイトルフィールドの下に表示されています。Joomla!は自動的にエイリアスを作成でき自動作成されたエイリアスはタイトルから始まりすべて小文字に変換されます。スペースやURLで使用できない文字はダッシュに変換されます。&lt;br /&gt;
&lt;br /&gt;
=== エイリアスを自分で作成したい ===&lt;br /&gt;
Joomla!が作成するエイリアスが気に入らない場合、エイリアスフィールドに好きな値を入れる事ができます。大抵の場合URL内に効果的なキーワードを使用するとSEO対策となるでしょう。記事のタイトルにこれらのキーワードを含みJoomla!で作成したり独自のエイリアスを作る事ができます。&lt;br /&gt;
&lt;br /&gt;
=== エイリアスはURLのどの部分に使用されますか？ ===&lt;br /&gt;
メニューアイテムではJoomla!はURLプラグとしてエイリアスを使用します。SEFのオプションを二つとも有効に設定しているとしてProductsというタイトルのメニューアイテムを作った場合のURLはexample.com/productsになります。&lt;br /&gt;
&lt;br /&gt;
Joomla!のルータが正しいページに移動する為、URL内のプライマリーキーを使用しています。上記例のメニューアイテムの種類がカテゴリブログの場合、記事タイトルや続きを読むリンクの3個のパーツ:&lt;br /&gt;
&lt;br /&gt;
* メニューアイテムのURL - example.com/products;&lt;br /&gt;
&lt;br /&gt;
* カテゴリのプライマリーキーとカテゴリのエイリアスを追加 - 32-fruit;&lt;br /&gt;
&lt;br /&gt;
* 記事のプライマリーキーと記事のエイリアスを追加 - 1-apple;&lt;br /&gt;
&lt;br /&gt;
完成したURL: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/products/32-fruit/1-apple&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How can I get rid of the numbers in the SEF URLs? ===&lt;br /&gt;
The numbers in the SEF URL are needed by Joomla!&#039;s router to know how to direct site traffic. Once the router logic stabilizes, simple third party system plugins can be developed to augment the router capabilities by allowing more choice. At that time, numbers will likely be removed from the URL.&lt;br /&gt;
&lt;br /&gt;
== Route Formats and the Routing Mechanism ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes Joomla!&#039;s core (built-in) routing mechanism. Routing extensions may change the way routes are created on your system.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Route Formats ===&lt;br /&gt;
&lt;br /&gt;
To describe the Joomla! routing mechanism in more detail, we first need to pin down what we refer to as a &#039;&#039;&#039;route&#039;&#039;&#039;. Suppose that Joomla! has been installed in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/sites/first/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The installation path is generally referred to as the &#039;&#039;&#039;base URL&#039;&#039;&#039;. A possible example URL is &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/sites/first/products/32-fruit/1-apple&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The first part of this URL is the aforementioned base URL, and neither Joomla! nor any component router can create URLs with a different first part. The second part, &amp;lt;code&amp;gt;products/32-fruit/1-apple&amp;lt;/code&amp;gt;, is a &#039;&#039;&#039;route&#039;&#039;&#039;, consisting of three &#039;&#039;&#039;segment&#039;&#039;&#039;s.&lt;br /&gt;
&lt;br /&gt;
The first segment of a route is, for regular URLs, the alias of a menu item. The SEF URL is said to be &#039;&#039;&#039;routed through&#039;&#039;&#039; that menu item. The other segments are determined entirely by the router of the component that provides the type of the menu item. The &#039;&#039;Category - Blog&#039;&#039; menu item type, for example, is provided by the [[Content]] component, and therefore that component&#039;s router is responsible for building and parsing the remaining segments.&lt;br /&gt;
&lt;br /&gt;
It is also possible (for extensions) to ask the system to create a route without supplying a menu item to route through. In that case, the system will usually decide to create a special route that has the word &amp;lt;code&amp;gt;component&amp;lt;/code&amp;gt; as the first segment. These routes are created using a fixed format: the name of the component (without the leading &amp;lt;code&amp;gt;com_&amp;lt;/code&amp;gt;) is selected as the second segment and any parameters as the other segments.&lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
&lt;br /&gt;
It is important to note creating a menu item is the &#039;&#039;only&#039;&#039; way for a Joomla! user to define a route that leads to a specific component. It is, however, possible to create a route without showing it on the site (in a menu). An often-applied method is to create a menu item in a menu that isn&#039;t displayed anywhere. Such a menu is usually called a [[Menu|hidden menu]].&lt;br /&gt;
&lt;br /&gt;
The previous paragraph implies that it is not possible to make one component responsible for handling all routes. For example, it is not possible to specify that the URL &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/thealias&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; should display the Content item with the alias &amp;lt;code&amp;gt;thealias&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;thealias&amp;lt;/code&amp;gt; could be any word. If this needs to be done for a small number of articles, menu items can be created manually for these. Else a routing extension is necessary.&lt;br /&gt;
&lt;br /&gt;
This routing mechanism is therefore not as flexible as users sometimes require. On the other hand, it has one large advantage: it reduces the chance of ambiguous routes (routes that could lead to two different pages). Since the first segment of a route is always a menu item alias, the system immediately knows which component&#039;s router must be used to parse it.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
=== Handling Routes ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes the routing implementation. If you are a component developer, see [[Supporting SEF URLs in your component]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Joomla routes are created and resolved by [[JRouter|the JRouter class]]. This class looks in the component root of the currently active component (specified in the &amp;lt;code&amp;gt;option&amp;lt;/code&amp;gt; parameter in the query string) and includes the &amp;lt;code&amp;gt;router.php&amp;lt;/code&amp;gt; file in that component&#039;s root directory. It then calls one of two functions: one for creating the SEF URL and one for interpreting the SEF URL.&lt;br /&gt;
&lt;br /&gt;
The JRouter class is overridden by the Joomla CMS in &amp;lt;code&amp;gt;/includes/router.php&amp;lt;/code&amp;gt;. In this file the build and parse functions are overridden to properly build and parse the URLs for the Joomla CMS.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;router.php&amp;lt;/code&amp;gt; file in each component (for example, &amp;lt;code&amp;gt;/components/com_content/router.php&amp;lt;/code&amp;gt;) should contain the following two functions:&lt;br /&gt;
* ContentBuildRoute - this builds the SEF URL&lt;br /&gt;
** Parameters&lt;br /&gt;
*** $query - this is a named array containing the querystring variables&lt;br /&gt;
** Returns: an array of segments where each segment is separated by a &#039;/&#039; when later combined to create the actual URL (the items in the array should not contain &#039;/&#039; characters)&lt;br /&gt;
* ContentParseRoute - this interprets an SEF URL&lt;br /&gt;
** Parameters&lt;br /&gt;
*** $segments - this is an array that contains the segments of the URL requested.&lt;br /&gt;
** Returns: a name =&amp;gt; value array of the querystring variables that the link maps to&lt;br /&gt;
&lt;br /&gt;
=== The SEF Plugin ===&lt;br /&gt;
The Joomla &#039;&#039;System - SEF&#039;&#039; plugin inherits &amp;lt;code&amp;gt;JPlugin&amp;lt;/code&amp;gt; and implements the &amp;lt;code&amp;gt;onAfterRender()&amp;lt;/code&amp;gt; function. In this function the body of the response that will be sent to the browser is retrieved using &amp;lt;code&amp;gt;JResponse::getBody()&amp;lt;/code&amp;gt;. The body of the response is then searched for links containing &amp;lt;code&amp;gt;/index.php...&amp;lt;/code&amp;gt; and replaces them with a correct SEF URL by calling &amp;lt;code&amp;gt;JRoute::_(&#039;&#039;url&#039;&#039;)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
JRoute builds SEF URLs by instantiating a &amp;lt;code&amp;gt;JRouter&amp;lt;/code&amp;gt; object and requesting that it build the correct link from the passed in URL.&lt;br /&gt;
&lt;br /&gt;
=== Handling SEF URLs ===&lt;br /&gt;
By default the SEF URLs are handled by the &amp;lt;code&amp;gt;JRouterSite&amp;lt;/code&amp;gt; object (from &amp;lt;code&amp;gt;/includes/router.php&amp;lt;/code&amp;gt;) and is called by a call to &amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; in index.php. This call is made on the &amp;lt;code&amp;gt;$app&amp;lt;/code&amp;gt; variable which is actually an instance of &amp;lt;code&amp;gt;JSite&amp;lt;/code&amp;gt; (from &amp;lt;code&amp;gt;/includes/application.php&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; has a non-destructive result on the &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; array. That is, &amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; sets variables in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; by calling &amp;lt;code&amp;gt;JRequest::set()&amp;lt;/code&amp;gt; with the overwrite flag set to false. Thus if a variable name is returned from &amp;lt;code&amp;gt;JRouter::route()&amp;lt;/code&amp;gt; that is already in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt;, it will not put that value into &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt;. This allows for custom routing.&lt;br /&gt;
&lt;br /&gt;
=== Custom Routing ===&lt;br /&gt;
Joomla allows you to create your own routing mechanism. In order to create this mechanism you must have a plugin that overrides the &amp;lt;code&amp;gt;JPlugin::onAfterInitialise()&amp;lt;/code&amp;gt; function. This function then parses the URL and creates the needed variables in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; before the standard Joomla routing is done.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See [[Creating a System Plugin to augment JRouter]] for an example.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Search Engine Friendly URLs| ]]&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Search_Engine_Friendly_URLs/20/ja&amp;diff=114310</id>
		<title>Translations:Search Engine Friendly URLs/20/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Search_Engine_Friendly_URLs/20/ja&amp;diff=114310"/>
		<updated>2014-03-08T10:29:17Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;完成したURL: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/products/32-fruit/1-apple&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;完成したURL: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/products/32-fruit/1-apple&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Search_Engine_Friendly_URLs/ja&amp;diff=114309</id>
		<title>Search Engine Friendly URLs/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Search_Engine_Friendly_URLs/ja&amp;diff=114309"/>
		<updated>2014-03-08T10:29:01Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;* 記事のプライマリーキーと記事のエイリアスを追加 - 1-apple;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;検索エンジンフレンドリーURL&#039;&#039;&#039;,&#039;&#039;&#039;人が読みとれる&#039;&#039;&#039;や[[wikipedia:Clean_URL|clean URLs]]は特定ページへのパスを人と検索エンジン両方に理解できるURLです。Joomla! バージョン1.5以降ではSEF URLを含む全フォーマットでもURLを作成し解析できます。Joomla!の場合、WebサーバのURL書換えに依存しない為、Joomla!はmod_rewriteモジュールを使用しているApache以外のサーバでも作動します。SEF URLは特定の固有パターンがありますがユーザはURL毎に短い説明(エイリアス)を含める事ができます。&lt;br /&gt;
&lt;br /&gt;
内部的にSEF URL(ドメイン名以降)のパスは&#039;&#039;&#039;ルート&#039;&#039;&#039;と呼ばれています。SEF URLの作成と解析処理は&#039;&#039;&#039;ルーティング&#039;&#039;&#039;と呼ばれ関連するコードは&#039;&#039;&#039;ルータ&#039;&#039;&#039;と呼ばれています。&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
ルーティングのよい例がサンプルデータ内の記事&amp;quot;Joomla!へようこそ&amp;quot;です。&lt;br /&gt;
&lt;br /&gt;
* SEF URLが無効のURL &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=1:welcome-to-joomla&amp;amp;catid=1:latest-news&amp;amp;Itemid=50&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* SEF URLが有効でmod_rewriteは無効 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php/the-­news/1-­latest­-news/1­-welcome­-to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* SEF URL,mod_rewrite両方有効 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
検索エンジンフレンドリーURLは&#039;&#039;&#039;グローバル設定&#039;&#039;&#039;内の&#039;&#039;&#039;検索エンジンフレンドリーURL&#039;&#039;&#039;で設定できますこのオプションはJoomla!1.6からデフォルトで有効になっています。詳細は[[S:MyLanguage/Enabling Search Engine Friendly (SEF) URLs|検索エンジンフレンドリーURLを有効化]]を参照して下さい。&lt;br /&gt;
&lt;br /&gt;
== FAQs ==&lt;br /&gt;
&lt;br /&gt;
=== URL内の数字はなんですか？ ===&lt;br /&gt;
古いURLと新しいURLの数字を比較してみましょう古いURLでは&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=1:welcome-to-joomla&amp;amp;catid=1:latest-news&amp;amp;Itemid=50&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
新しいURLでは:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These numbers are the parameters that are needed by Joomla! to get the internal URL and show the page you want to see. (In this case, the first numeral one is the ID of the category, the second numeral one is the ID of the article.)&lt;br /&gt;
&lt;br /&gt;
=== URLには &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt; がありませんこのファイルは削除していいですか？ ===&lt;br /&gt;
削除してはいけませんURLには&amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt;が含まれていませんが内部的にmod_rewriteが表示しないで元のパスへリダイレクトしているためです。&lt;br /&gt;
&lt;br /&gt;
=== [[S:MyLanguage/Alias|エイリアス]]とは？またどの様に作成されますか？ ===&lt;br /&gt;
エイリアスは記事、カテゴリ、セクション、メニューアイテム等のタイトルフィールドの下に表示されています。Joomla!は自動的にエイリアスを作成でき自動作成されたエイリアスはタイトルから始まりすべて小文字に変換されます。スペースやURLで使用できない文字はダッシュに変換されます。&lt;br /&gt;
&lt;br /&gt;
=== エイリアスを自分で作成したい ===&lt;br /&gt;
Joomla!が作成するエイリアスが気に入らない場合、エイリアスフィールドに好きな値を入れる事ができます。大抵の場合URL内に効果的なキーワードを使用するとSEO対策となるでしょう。記事のタイトルにこれらのキーワードを含みJoomla!で作成したり独自のエイリアスを作る事ができます。&lt;br /&gt;
&lt;br /&gt;
=== エイリアスはURLのどの部分に使用されますか？ ===&lt;br /&gt;
メニューアイテムではJoomla!はURLプラグとしてエイリアスを使用します。SEFのオプションを二つとも有効に設定しているとしてProductsというタイトルのメニューアイテムを作った場合のURLはexample.com/productsになります。&lt;br /&gt;
&lt;br /&gt;
Joomla!のルータが正しいページに移動する為、URL内のプライマリーキーを使用しています。上記例のメニューアイテムの種類がカテゴリブログの場合、記事タイトルや続きを読むリンクの3個のパーツ:&lt;br /&gt;
&lt;br /&gt;
* メニューアイテムのURL - example.com/products;&lt;br /&gt;
&lt;br /&gt;
* カテゴリのプライマリーキーとカテゴリのエイリアスを追加 - 32-fruit;&lt;br /&gt;
&lt;br /&gt;
* 記事のプライマリーキーと記事のエイリアスを追加 - 1-apple;&lt;br /&gt;
&lt;br /&gt;
The complete URL is: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/products/32-fruit/1-apple&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How can I get rid of the numbers in the SEF URLs? ===&lt;br /&gt;
The numbers in the SEF URL are needed by Joomla!&#039;s router to know how to direct site traffic. Once the router logic stabilizes, simple third party system plugins can be developed to augment the router capabilities by allowing more choice. At that time, numbers will likely be removed from the URL.&lt;br /&gt;
&lt;br /&gt;
== Route Formats and the Routing Mechanism ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes Joomla!&#039;s core (built-in) routing mechanism. Routing extensions may change the way routes are created on your system.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Route Formats ===&lt;br /&gt;
&lt;br /&gt;
To describe the Joomla! routing mechanism in more detail, we first need to pin down what we refer to as a &#039;&#039;&#039;route&#039;&#039;&#039;. Suppose that Joomla! has been installed in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/sites/first/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The installation path is generally referred to as the &#039;&#039;&#039;base URL&#039;&#039;&#039;. A possible example URL is &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/sites/first/products/32-fruit/1-apple&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The first part of this URL is the aforementioned base URL, and neither Joomla! nor any component router can create URLs with a different first part. The second part, &amp;lt;code&amp;gt;products/32-fruit/1-apple&amp;lt;/code&amp;gt;, is a &#039;&#039;&#039;route&#039;&#039;&#039;, consisting of three &#039;&#039;&#039;segment&#039;&#039;&#039;s.&lt;br /&gt;
&lt;br /&gt;
The first segment of a route is, for regular URLs, the alias of a menu item. The SEF URL is said to be &#039;&#039;&#039;routed through&#039;&#039;&#039; that menu item. The other segments are determined entirely by the router of the component that provides the type of the menu item. The &#039;&#039;Category - Blog&#039;&#039; menu item type, for example, is provided by the [[Content]] component, and therefore that component&#039;s router is responsible for building and parsing the remaining segments.&lt;br /&gt;
&lt;br /&gt;
It is also possible (for extensions) to ask the system to create a route without supplying a menu item to route through. In that case, the system will usually decide to create a special route that has the word &amp;lt;code&amp;gt;component&amp;lt;/code&amp;gt; as the first segment. These routes are created using a fixed format: the name of the component (without the leading &amp;lt;code&amp;gt;com_&amp;lt;/code&amp;gt;) is selected as the second segment and any parameters as the other segments.&lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
&lt;br /&gt;
It is important to note creating a menu item is the &#039;&#039;only&#039;&#039; way for a Joomla! user to define a route that leads to a specific component. It is, however, possible to create a route without showing it on the site (in a menu). An often-applied method is to create a menu item in a menu that isn&#039;t displayed anywhere. Such a menu is usually called a [[Menu|hidden menu]].&lt;br /&gt;
&lt;br /&gt;
The previous paragraph implies that it is not possible to make one component responsible for handling all routes. For example, it is not possible to specify that the URL &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/thealias&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; should display the Content item with the alias &amp;lt;code&amp;gt;thealias&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;thealias&amp;lt;/code&amp;gt; could be any word. If this needs to be done for a small number of articles, menu items can be created manually for these. Else a routing extension is necessary.&lt;br /&gt;
&lt;br /&gt;
This routing mechanism is therefore not as flexible as users sometimes require. On the other hand, it has one large advantage: it reduces the chance of ambiguous routes (routes that could lead to two different pages). Since the first segment of a route is always a menu item alias, the system immediately knows which component&#039;s router must be used to parse it.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
=== Handling Routes ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes the routing implementation. If you are a component developer, see [[Supporting SEF URLs in your component]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Joomla routes are created and resolved by [[JRouter|the JRouter class]]. This class looks in the component root of the currently active component (specified in the &amp;lt;code&amp;gt;option&amp;lt;/code&amp;gt; parameter in the query string) and includes the &amp;lt;code&amp;gt;router.php&amp;lt;/code&amp;gt; file in that component&#039;s root directory. It then calls one of two functions: one for creating the SEF URL and one for interpreting the SEF URL.&lt;br /&gt;
&lt;br /&gt;
The JRouter class is overridden by the Joomla CMS in &amp;lt;code&amp;gt;/includes/router.php&amp;lt;/code&amp;gt;. In this file the build and parse functions are overridden to properly build and parse the URLs for the Joomla CMS.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;router.php&amp;lt;/code&amp;gt; file in each component (for example, &amp;lt;code&amp;gt;/components/com_content/router.php&amp;lt;/code&amp;gt;) should contain the following two functions:&lt;br /&gt;
* ContentBuildRoute - this builds the SEF URL&lt;br /&gt;
** Parameters&lt;br /&gt;
*** $query - this is a named array containing the querystring variables&lt;br /&gt;
** Returns: an array of segments where each segment is separated by a &#039;/&#039; when later combined to create the actual URL (the items in the array should not contain &#039;/&#039; characters)&lt;br /&gt;
* ContentParseRoute - this interprets an SEF URL&lt;br /&gt;
** Parameters&lt;br /&gt;
*** $segments - this is an array that contains the segments of the URL requested.&lt;br /&gt;
** Returns: a name =&amp;gt; value array of the querystring variables that the link maps to&lt;br /&gt;
&lt;br /&gt;
=== The SEF Plugin ===&lt;br /&gt;
The Joomla &#039;&#039;System - SEF&#039;&#039; plugin inherits &amp;lt;code&amp;gt;JPlugin&amp;lt;/code&amp;gt; and implements the &amp;lt;code&amp;gt;onAfterRender()&amp;lt;/code&amp;gt; function. In this function the body of the response that will be sent to the browser is retrieved using &amp;lt;code&amp;gt;JResponse::getBody()&amp;lt;/code&amp;gt;. The body of the response is then searched for links containing &amp;lt;code&amp;gt;/index.php...&amp;lt;/code&amp;gt; and replaces them with a correct SEF URL by calling &amp;lt;code&amp;gt;JRoute::_(&#039;&#039;url&#039;&#039;)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
JRoute builds SEF URLs by instantiating a &amp;lt;code&amp;gt;JRouter&amp;lt;/code&amp;gt; object and requesting that it build the correct link from the passed in URL.&lt;br /&gt;
&lt;br /&gt;
=== Handling SEF URLs ===&lt;br /&gt;
By default the SEF URLs are handled by the &amp;lt;code&amp;gt;JRouterSite&amp;lt;/code&amp;gt; object (from &amp;lt;code&amp;gt;/includes/router.php&amp;lt;/code&amp;gt;) and is called by a call to &amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; in index.php. This call is made on the &amp;lt;code&amp;gt;$app&amp;lt;/code&amp;gt; variable which is actually an instance of &amp;lt;code&amp;gt;JSite&amp;lt;/code&amp;gt; (from &amp;lt;code&amp;gt;/includes/application.php&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; has a non-destructive result on the &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; array. That is, &amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; sets variables in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; by calling &amp;lt;code&amp;gt;JRequest::set()&amp;lt;/code&amp;gt; with the overwrite flag set to false. Thus if a variable name is returned from &amp;lt;code&amp;gt;JRouter::route()&amp;lt;/code&amp;gt; that is already in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt;, it will not put that value into &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt;. This allows for custom routing.&lt;br /&gt;
&lt;br /&gt;
=== Custom Routing ===&lt;br /&gt;
Joomla allows you to create your own routing mechanism. In order to create this mechanism you must have a plugin that overrides the &amp;lt;code&amp;gt;JPlugin::onAfterInitialise()&amp;lt;/code&amp;gt; function. This function then parses the URL and creates the needed variables in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; before the standard Joomla routing is done.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See [[Creating a System Plugin to augment JRouter]] for an example.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Search Engine Friendly URLs| ]]&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Search_Engine_Friendly_URLs/19/ja&amp;diff=114308</id>
		<title>Translations:Search Engine Friendly URLs/19/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Search_Engine_Friendly_URLs/19/ja&amp;diff=114308"/>
		<updated>2014-03-08T10:29:01Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;* 記事のプライマリーキーと記事のエイリアスを追加 - 1-apple;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* 記事のプライマリーキーと記事のエイリアスを追加 - 1-apple;&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Search_Engine_Friendly_URLs/ja&amp;diff=114307</id>
		<title>Search Engine Friendly URLs/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Search_Engine_Friendly_URLs/ja&amp;diff=114307"/>
		<updated>2014-03-08T10:28:55Z</updated>

		<summary type="html">&lt;p&gt;Nori: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;検索エンジンフレンドリーURL&#039;&#039;&#039;,&#039;&#039;&#039;人が読みとれる&#039;&#039;&#039;や[[wikipedia:Clean_URL|clean URLs]]は特定ページへのパスを人と検索エンジン両方に理解できるURLです。Joomla! バージョン1.5以降ではSEF URLを含む全フォーマットでもURLを作成し解析できます。Joomla!の場合、WebサーバのURL書換えに依存しない為、Joomla!はmod_rewriteモジュールを使用しているApache以外のサーバでも作動します。SEF URLは特定の固有パターンがありますがユーザはURL毎に短い説明(エイリアス)を含める事ができます。&lt;br /&gt;
&lt;br /&gt;
内部的にSEF URL(ドメイン名以降)のパスは&#039;&#039;&#039;ルート&#039;&#039;&#039;と呼ばれています。SEF URLの作成と解析処理は&#039;&#039;&#039;ルーティング&#039;&#039;&#039;と呼ばれ関連するコードは&#039;&#039;&#039;ルータ&#039;&#039;&#039;と呼ばれています。&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
ルーティングのよい例がサンプルデータ内の記事&amp;quot;Joomla!へようこそ&amp;quot;です。&lt;br /&gt;
&lt;br /&gt;
* SEF URLが無効のURL &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=1:welcome-to-joomla&amp;amp;catid=1:latest-news&amp;amp;Itemid=50&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* SEF URLが有効でmod_rewriteは無効 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php/the-­news/1-­latest­-news/1­-welcome­-to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* SEF URL,mod_rewrite両方有効 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
検索エンジンフレンドリーURLは&#039;&#039;&#039;グローバル設定&#039;&#039;&#039;内の&#039;&#039;&#039;検索エンジンフレンドリーURL&#039;&#039;&#039;で設定できますこのオプションはJoomla!1.6からデフォルトで有効になっています。詳細は[[S:MyLanguage/Enabling Search Engine Friendly (SEF) URLs|検索エンジンフレンドリーURLを有効化]]を参照して下さい。&lt;br /&gt;
&lt;br /&gt;
== FAQs ==&lt;br /&gt;
&lt;br /&gt;
=== URL内の数字はなんですか？ ===&lt;br /&gt;
古いURLと新しいURLの数字を比較してみましょう古いURLでは&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=1:welcome-to-joomla&amp;amp;catid=1:latest-news&amp;amp;Itemid=50&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
新しいURLでは:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These numbers are the parameters that are needed by Joomla! to get the internal URL and show the page you want to see. (In this case, the first numeral one is the ID of the category, the second numeral one is the ID of the article.)&lt;br /&gt;
&lt;br /&gt;
=== URLには &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt; がありませんこのファイルは削除していいですか？ ===&lt;br /&gt;
削除してはいけませんURLには&amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt;が含まれていませんが内部的にmod_rewriteが表示しないで元のパスへリダイレクトしているためです。&lt;br /&gt;
&lt;br /&gt;
=== [[S:MyLanguage/Alias|エイリアス]]とは？またどの様に作成されますか？ ===&lt;br /&gt;
エイリアスは記事、カテゴリ、セクション、メニューアイテム等のタイトルフィールドの下に表示されています。Joomla!は自動的にエイリアスを作成でき自動作成されたエイリアスはタイトルから始まりすべて小文字に変換されます。スペースやURLで使用できない文字はダッシュに変換されます。&lt;br /&gt;
&lt;br /&gt;
=== エイリアスを自分で作成したい ===&lt;br /&gt;
Joomla!が作成するエイリアスが気に入らない場合、エイリアスフィールドに好きな値を入れる事ができます。大抵の場合URL内に効果的なキーワードを使用するとSEO対策となるでしょう。記事のタイトルにこれらのキーワードを含みJoomla!で作成したり独自のエイリアスを作る事ができます。&lt;br /&gt;
&lt;br /&gt;
=== エイリアスはURLのどの部分に使用されますか？ ===&lt;br /&gt;
メニューアイテムではJoomla!はURLプラグとしてエイリアスを使用します。SEFのオプションを二つとも有効に設定しているとしてProductsというタイトルのメニューアイテムを作った場合のURLはexample.com/productsになります。&lt;br /&gt;
&lt;br /&gt;
Joomla!のルータが正しいページに移動する為、URL内のプライマリーキーを使用しています。上記例のメニューアイテムの種類がカテゴリブログの場合、記事タイトルや続きを読むリンクの3個のパーツ:&lt;br /&gt;
&lt;br /&gt;
* メニューアイテムのURL - example.com/products;&lt;br /&gt;
&lt;br /&gt;
* カテゴリのプライマリーキーとカテゴリのエイリアスを追加 - 32-fruit;&lt;br /&gt;
&lt;br /&gt;
* Plus, the primary key for the Article and the Article alias - 1-apple;&lt;br /&gt;
&lt;br /&gt;
The complete URL is: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/products/32-fruit/1-apple&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How can I get rid of the numbers in the SEF URLs? ===&lt;br /&gt;
The numbers in the SEF URL are needed by Joomla!&#039;s router to know how to direct site traffic. Once the router logic stabilizes, simple third party system plugins can be developed to augment the router capabilities by allowing more choice. At that time, numbers will likely be removed from the URL.&lt;br /&gt;
&lt;br /&gt;
== Route Formats and the Routing Mechanism ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes Joomla!&#039;s core (built-in) routing mechanism. Routing extensions may change the way routes are created on your system.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Route Formats ===&lt;br /&gt;
&lt;br /&gt;
To describe the Joomla! routing mechanism in more detail, we first need to pin down what we refer to as a &#039;&#039;&#039;route&#039;&#039;&#039;. Suppose that Joomla! has been installed in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/sites/first/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The installation path is generally referred to as the &#039;&#039;&#039;base URL&#039;&#039;&#039;. A possible example URL is &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/sites/first/products/32-fruit/1-apple&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The first part of this URL is the aforementioned base URL, and neither Joomla! nor any component router can create URLs with a different first part. The second part, &amp;lt;code&amp;gt;products/32-fruit/1-apple&amp;lt;/code&amp;gt;, is a &#039;&#039;&#039;route&#039;&#039;&#039;, consisting of three &#039;&#039;&#039;segment&#039;&#039;&#039;s.&lt;br /&gt;
&lt;br /&gt;
The first segment of a route is, for regular URLs, the alias of a menu item. The SEF URL is said to be &#039;&#039;&#039;routed through&#039;&#039;&#039; that menu item. The other segments are determined entirely by the router of the component that provides the type of the menu item. The &#039;&#039;Category - Blog&#039;&#039; menu item type, for example, is provided by the [[Content]] component, and therefore that component&#039;s router is responsible for building and parsing the remaining segments.&lt;br /&gt;
&lt;br /&gt;
It is also possible (for extensions) to ask the system to create a route without supplying a menu item to route through. In that case, the system will usually decide to create a special route that has the word &amp;lt;code&amp;gt;component&amp;lt;/code&amp;gt; as the first segment. These routes are created using a fixed format: the name of the component (without the leading &amp;lt;code&amp;gt;com_&amp;lt;/code&amp;gt;) is selected as the second segment and any parameters as the other segments.&lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
&lt;br /&gt;
It is important to note creating a menu item is the &#039;&#039;only&#039;&#039; way for a Joomla! user to define a route that leads to a specific component. It is, however, possible to create a route without showing it on the site (in a menu). An often-applied method is to create a menu item in a menu that isn&#039;t displayed anywhere. Such a menu is usually called a [[Menu|hidden menu]].&lt;br /&gt;
&lt;br /&gt;
The previous paragraph implies that it is not possible to make one component responsible for handling all routes. For example, it is not possible to specify that the URL &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/thealias&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; should display the Content item with the alias &amp;lt;code&amp;gt;thealias&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;thealias&amp;lt;/code&amp;gt; could be any word. If this needs to be done for a small number of articles, menu items can be created manually for these. Else a routing extension is necessary.&lt;br /&gt;
&lt;br /&gt;
This routing mechanism is therefore not as flexible as users sometimes require. On the other hand, it has one large advantage: it reduces the chance of ambiguous routes (routes that could lead to two different pages). Since the first segment of a route is always a menu item alias, the system immediately knows which component&#039;s router must be used to parse it.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
=== Handling Routes ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes the routing implementation. If you are a component developer, see [[Supporting SEF URLs in your component]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Joomla routes are created and resolved by [[JRouter|the JRouter class]]. This class looks in the component root of the currently active component (specified in the &amp;lt;code&amp;gt;option&amp;lt;/code&amp;gt; parameter in the query string) and includes the &amp;lt;code&amp;gt;router.php&amp;lt;/code&amp;gt; file in that component&#039;s root directory. It then calls one of two functions: one for creating the SEF URL and one for interpreting the SEF URL.&lt;br /&gt;
&lt;br /&gt;
The JRouter class is overridden by the Joomla CMS in &amp;lt;code&amp;gt;/includes/router.php&amp;lt;/code&amp;gt;. In this file the build and parse functions are overridden to properly build and parse the URLs for the Joomla CMS.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;router.php&amp;lt;/code&amp;gt; file in each component (for example, &amp;lt;code&amp;gt;/components/com_content/router.php&amp;lt;/code&amp;gt;) should contain the following two functions:&lt;br /&gt;
* ContentBuildRoute - this builds the SEF URL&lt;br /&gt;
** Parameters&lt;br /&gt;
*** $query - this is a named array containing the querystring variables&lt;br /&gt;
** Returns: an array of segments where each segment is separated by a &#039;/&#039; when later combined to create the actual URL (the items in the array should not contain &#039;/&#039; characters)&lt;br /&gt;
* ContentParseRoute - this interprets an SEF URL&lt;br /&gt;
** Parameters&lt;br /&gt;
*** $segments - this is an array that contains the segments of the URL requested.&lt;br /&gt;
** Returns: a name =&amp;gt; value array of the querystring variables that the link maps to&lt;br /&gt;
&lt;br /&gt;
=== The SEF Plugin ===&lt;br /&gt;
The Joomla &#039;&#039;System - SEF&#039;&#039; plugin inherits &amp;lt;code&amp;gt;JPlugin&amp;lt;/code&amp;gt; and implements the &amp;lt;code&amp;gt;onAfterRender()&amp;lt;/code&amp;gt; function. In this function the body of the response that will be sent to the browser is retrieved using &amp;lt;code&amp;gt;JResponse::getBody()&amp;lt;/code&amp;gt;. The body of the response is then searched for links containing &amp;lt;code&amp;gt;/index.php...&amp;lt;/code&amp;gt; and replaces them with a correct SEF URL by calling &amp;lt;code&amp;gt;JRoute::_(&#039;&#039;url&#039;&#039;)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
JRoute builds SEF URLs by instantiating a &amp;lt;code&amp;gt;JRouter&amp;lt;/code&amp;gt; object and requesting that it build the correct link from the passed in URL.&lt;br /&gt;
&lt;br /&gt;
=== Handling SEF URLs ===&lt;br /&gt;
By default the SEF URLs are handled by the &amp;lt;code&amp;gt;JRouterSite&amp;lt;/code&amp;gt; object (from &amp;lt;code&amp;gt;/includes/router.php&amp;lt;/code&amp;gt;) and is called by a call to &amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; in index.php. This call is made on the &amp;lt;code&amp;gt;$app&amp;lt;/code&amp;gt; variable which is actually an instance of &amp;lt;code&amp;gt;JSite&amp;lt;/code&amp;gt; (from &amp;lt;code&amp;gt;/includes/application.php&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; has a non-destructive result on the &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; array. That is, &amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; sets variables in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; by calling &amp;lt;code&amp;gt;JRequest::set()&amp;lt;/code&amp;gt; with the overwrite flag set to false. Thus if a variable name is returned from &amp;lt;code&amp;gt;JRouter::route()&amp;lt;/code&amp;gt; that is already in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt;, it will not put that value into &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt;. This allows for custom routing.&lt;br /&gt;
&lt;br /&gt;
=== Custom Routing ===&lt;br /&gt;
Joomla allows you to create your own routing mechanism. In order to create this mechanism you must have a plugin that overrides the &amp;lt;code&amp;gt;JPlugin::onAfterInitialise()&amp;lt;/code&amp;gt; function. This function then parses the URL and creates the needed variables in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; before the standard Joomla routing is done.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See [[Creating a System Plugin to augment JRouter]] for an example.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Search Engine Friendly URLs| ]]&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Search_Engine_Friendly_URLs/18/ja&amp;diff=114306</id>
		<title>Translations:Search Engine Friendly URLs/18/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Search_Engine_Friendly_URLs/18/ja&amp;diff=114306"/>
		<updated>2014-03-08T10:28:55Z</updated>

		<summary type="html">&lt;p&gt;Nori: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* カテゴリのプライマリーキーとカテゴリのエイリアスを追加 - 32-fruit;&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Search_Engine_Friendly_URLs/ja&amp;diff=114305</id>
		<title>Search Engine Friendly URLs/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Search_Engine_Friendly_URLs/ja&amp;diff=114305"/>
		<updated>2014-03-08T10:27:50Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;* カテゴリのプライマリーキーとカテゴリエイリアスを追加 - 32-fruit;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;検索エンジンフレンドリーURL&#039;&#039;&#039;,&#039;&#039;&#039;人が読みとれる&#039;&#039;&#039;や[[wikipedia:Clean_URL|clean URLs]]は特定ページへのパスを人と検索エンジン両方に理解できるURLです。Joomla! バージョン1.5以降ではSEF URLを含む全フォーマットでもURLを作成し解析できます。Joomla!の場合、WebサーバのURL書換えに依存しない為、Joomla!はmod_rewriteモジュールを使用しているApache以外のサーバでも作動します。SEF URLは特定の固有パターンがありますがユーザはURL毎に短い説明(エイリアス)を含める事ができます。&lt;br /&gt;
&lt;br /&gt;
内部的にSEF URL(ドメイン名以降)のパスは&#039;&#039;&#039;ルート&#039;&#039;&#039;と呼ばれています。SEF URLの作成と解析処理は&#039;&#039;&#039;ルーティング&#039;&#039;&#039;と呼ばれ関連するコードは&#039;&#039;&#039;ルータ&#039;&#039;&#039;と呼ばれています。&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
ルーティングのよい例がサンプルデータ内の記事&amp;quot;Joomla!へようこそ&amp;quot;です。&lt;br /&gt;
&lt;br /&gt;
* SEF URLが無効のURL &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=1:welcome-to-joomla&amp;amp;catid=1:latest-news&amp;amp;Itemid=50&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* SEF URLが有効でmod_rewriteは無効 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php/the-­news/1-­latest­-news/1­-welcome­-to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* SEF URL,mod_rewrite両方有効 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
検索エンジンフレンドリーURLは&#039;&#039;&#039;グローバル設定&#039;&#039;&#039;内の&#039;&#039;&#039;検索エンジンフレンドリーURL&#039;&#039;&#039;で設定できますこのオプションはJoomla!1.6からデフォルトで有効になっています。詳細は[[S:MyLanguage/Enabling Search Engine Friendly (SEF) URLs|検索エンジンフレンドリーURLを有効化]]を参照して下さい。&lt;br /&gt;
&lt;br /&gt;
== FAQs ==&lt;br /&gt;
&lt;br /&gt;
=== URL内の数字はなんですか？ ===&lt;br /&gt;
古いURLと新しいURLの数字を比較してみましょう古いURLでは&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=1:welcome-to-joomla&amp;amp;catid=1:latest-news&amp;amp;Itemid=50&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
新しいURLでは:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These numbers are the parameters that are needed by Joomla! to get the internal URL and show the page you want to see. (In this case, the first numeral one is the ID of the category, the second numeral one is the ID of the article.)&lt;br /&gt;
&lt;br /&gt;
=== URLには &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt; がありませんこのファイルは削除していいですか？ ===&lt;br /&gt;
削除してはいけませんURLには&amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt;が含まれていませんが内部的にmod_rewriteが表示しないで元のパスへリダイレクトしているためです。&lt;br /&gt;
&lt;br /&gt;
=== [[S:MyLanguage/Alias|エイリアス]]とは？またどの様に作成されますか？ ===&lt;br /&gt;
エイリアスは記事、カテゴリ、セクション、メニューアイテム等のタイトルフィールドの下に表示されています。Joomla!は自動的にエイリアスを作成でき自動作成されたエイリアスはタイトルから始まりすべて小文字に変換されます。スペースやURLで使用できない文字はダッシュに変換されます。&lt;br /&gt;
&lt;br /&gt;
=== エイリアスを自分で作成したい ===&lt;br /&gt;
Joomla!が作成するエイリアスが気に入らない場合、エイリアスフィールドに好きな値を入れる事ができます。大抵の場合URL内に効果的なキーワードを使用するとSEO対策となるでしょう。記事のタイトルにこれらのキーワードを含みJoomla!で作成したり独自のエイリアスを作る事ができます。&lt;br /&gt;
&lt;br /&gt;
=== エイリアスはURLのどの部分に使用されますか？ ===&lt;br /&gt;
メニューアイテムではJoomla!はURLプラグとしてエイリアスを使用します。SEFのオプションを二つとも有効に設定しているとしてProductsというタイトルのメニューアイテムを作った場合のURLはexample.com/productsになります。&lt;br /&gt;
&lt;br /&gt;
Joomla!のルータが正しいページに移動する為、URL内のプライマリーキーを使用しています。上記例のメニューアイテムの種類がカテゴリブログの場合、記事タイトルや続きを読むリンクの3個のパーツ:&lt;br /&gt;
&lt;br /&gt;
* メニューアイテムのURL - example.com/products;&lt;br /&gt;
&lt;br /&gt;
* カテゴリのプライマリーキーとカテゴリエイリアスを追加 - 32-fruit;&lt;br /&gt;
&lt;br /&gt;
* Plus, the primary key for the Article and the Article alias - 1-apple;&lt;br /&gt;
&lt;br /&gt;
The complete URL is: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/products/32-fruit/1-apple&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How can I get rid of the numbers in the SEF URLs? ===&lt;br /&gt;
The numbers in the SEF URL are needed by Joomla!&#039;s router to know how to direct site traffic. Once the router logic stabilizes, simple third party system plugins can be developed to augment the router capabilities by allowing more choice. At that time, numbers will likely be removed from the URL.&lt;br /&gt;
&lt;br /&gt;
== Route Formats and the Routing Mechanism ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes Joomla!&#039;s core (built-in) routing mechanism. Routing extensions may change the way routes are created on your system.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Route Formats ===&lt;br /&gt;
&lt;br /&gt;
To describe the Joomla! routing mechanism in more detail, we first need to pin down what we refer to as a &#039;&#039;&#039;route&#039;&#039;&#039;. Suppose that Joomla! has been installed in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/sites/first/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The installation path is generally referred to as the &#039;&#039;&#039;base URL&#039;&#039;&#039;. A possible example URL is &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/sites/first/products/32-fruit/1-apple&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The first part of this URL is the aforementioned base URL, and neither Joomla! nor any component router can create URLs with a different first part. The second part, &amp;lt;code&amp;gt;products/32-fruit/1-apple&amp;lt;/code&amp;gt;, is a &#039;&#039;&#039;route&#039;&#039;&#039;, consisting of three &#039;&#039;&#039;segment&#039;&#039;&#039;s.&lt;br /&gt;
&lt;br /&gt;
The first segment of a route is, for regular URLs, the alias of a menu item. The SEF URL is said to be &#039;&#039;&#039;routed through&#039;&#039;&#039; that menu item. The other segments are determined entirely by the router of the component that provides the type of the menu item. The &#039;&#039;Category - Blog&#039;&#039; menu item type, for example, is provided by the [[Content]] component, and therefore that component&#039;s router is responsible for building and parsing the remaining segments.&lt;br /&gt;
&lt;br /&gt;
It is also possible (for extensions) to ask the system to create a route without supplying a menu item to route through. In that case, the system will usually decide to create a special route that has the word &amp;lt;code&amp;gt;component&amp;lt;/code&amp;gt; as the first segment. These routes are created using a fixed format: the name of the component (without the leading &amp;lt;code&amp;gt;com_&amp;lt;/code&amp;gt;) is selected as the second segment and any parameters as the other segments.&lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
&lt;br /&gt;
It is important to note creating a menu item is the &#039;&#039;only&#039;&#039; way for a Joomla! user to define a route that leads to a specific component. It is, however, possible to create a route without showing it on the site (in a menu). An often-applied method is to create a menu item in a menu that isn&#039;t displayed anywhere. Such a menu is usually called a [[Menu|hidden menu]].&lt;br /&gt;
&lt;br /&gt;
The previous paragraph implies that it is not possible to make one component responsible for handling all routes. For example, it is not possible to specify that the URL &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/thealias&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; should display the Content item with the alias &amp;lt;code&amp;gt;thealias&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;thealias&amp;lt;/code&amp;gt; could be any word. If this needs to be done for a small number of articles, menu items can be created manually for these. Else a routing extension is necessary.&lt;br /&gt;
&lt;br /&gt;
This routing mechanism is therefore not as flexible as users sometimes require. On the other hand, it has one large advantage: it reduces the chance of ambiguous routes (routes that could lead to two different pages). Since the first segment of a route is always a menu item alias, the system immediately knows which component&#039;s router must be used to parse it.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
=== Handling Routes ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes the routing implementation. If you are a component developer, see [[Supporting SEF URLs in your component]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Joomla routes are created and resolved by [[JRouter|the JRouter class]]. This class looks in the component root of the currently active component (specified in the &amp;lt;code&amp;gt;option&amp;lt;/code&amp;gt; parameter in the query string) and includes the &amp;lt;code&amp;gt;router.php&amp;lt;/code&amp;gt; file in that component&#039;s root directory. It then calls one of two functions: one for creating the SEF URL and one for interpreting the SEF URL.&lt;br /&gt;
&lt;br /&gt;
The JRouter class is overridden by the Joomla CMS in &amp;lt;code&amp;gt;/includes/router.php&amp;lt;/code&amp;gt;. In this file the build and parse functions are overridden to properly build and parse the URLs for the Joomla CMS.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;router.php&amp;lt;/code&amp;gt; file in each component (for example, &amp;lt;code&amp;gt;/components/com_content/router.php&amp;lt;/code&amp;gt;) should contain the following two functions:&lt;br /&gt;
* ContentBuildRoute - this builds the SEF URL&lt;br /&gt;
** Parameters&lt;br /&gt;
*** $query - this is a named array containing the querystring variables&lt;br /&gt;
** Returns: an array of segments where each segment is separated by a &#039;/&#039; when later combined to create the actual URL (the items in the array should not contain &#039;/&#039; characters)&lt;br /&gt;
* ContentParseRoute - this interprets an SEF URL&lt;br /&gt;
** Parameters&lt;br /&gt;
*** $segments - this is an array that contains the segments of the URL requested.&lt;br /&gt;
** Returns: a name =&amp;gt; value array of the querystring variables that the link maps to&lt;br /&gt;
&lt;br /&gt;
=== The SEF Plugin ===&lt;br /&gt;
The Joomla &#039;&#039;System - SEF&#039;&#039; plugin inherits &amp;lt;code&amp;gt;JPlugin&amp;lt;/code&amp;gt; and implements the &amp;lt;code&amp;gt;onAfterRender()&amp;lt;/code&amp;gt; function. In this function the body of the response that will be sent to the browser is retrieved using &amp;lt;code&amp;gt;JResponse::getBody()&amp;lt;/code&amp;gt;. The body of the response is then searched for links containing &amp;lt;code&amp;gt;/index.php...&amp;lt;/code&amp;gt; and replaces them with a correct SEF URL by calling &amp;lt;code&amp;gt;JRoute::_(&#039;&#039;url&#039;&#039;)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
JRoute builds SEF URLs by instantiating a &amp;lt;code&amp;gt;JRouter&amp;lt;/code&amp;gt; object and requesting that it build the correct link from the passed in URL.&lt;br /&gt;
&lt;br /&gt;
=== Handling SEF URLs ===&lt;br /&gt;
By default the SEF URLs are handled by the &amp;lt;code&amp;gt;JRouterSite&amp;lt;/code&amp;gt; object (from &amp;lt;code&amp;gt;/includes/router.php&amp;lt;/code&amp;gt;) and is called by a call to &amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; in index.php. This call is made on the &amp;lt;code&amp;gt;$app&amp;lt;/code&amp;gt; variable which is actually an instance of &amp;lt;code&amp;gt;JSite&amp;lt;/code&amp;gt; (from &amp;lt;code&amp;gt;/includes/application.php&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; has a non-destructive result on the &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; array. That is, &amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; sets variables in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; by calling &amp;lt;code&amp;gt;JRequest::set()&amp;lt;/code&amp;gt; with the overwrite flag set to false. Thus if a variable name is returned from &amp;lt;code&amp;gt;JRouter::route()&amp;lt;/code&amp;gt; that is already in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt;, it will not put that value into &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt;. This allows for custom routing.&lt;br /&gt;
&lt;br /&gt;
=== Custom Routing ===&lt;br /&gt;
Joomla allows you to create your own routing mechanism. In order to create this mechanism you must have a plugin that overrides the &amp;lt;code&amp;gt;JPlugin::onAfterInitialise()&amp;lt;/code&amp;gt; function. This function then parses the URL and creates the needed variables in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; before the standard Joomla routing is done.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See [[Creating a System Plugin to augment JRouter]] for an example.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Search Engine Friendly URLs| ]]&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Search_Engine_Friendly_URLs/18/ja&amp;diff=114304</id>
		<title>Translations:Search Engine Friendly URLs/18/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Search_Engine_Friendly_URLs/18/ja&amp;diff=114304"/>
		<updated>2014-03-08T10:27:50Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;* カテゴリのプライマリーキーとカテゴリエイリアスを追加 - 32-fruit;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* カテゴリのプライマリーキーとカテゴリエイリアスを追加 - 32-fruit;&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Search_Engine_Friendly_URLs/ja&amp;diff=114303</id>
		<title>Search Engine Friendly URLs/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Search_Engine_Friendly_URLs/ja&amp;diff=114303"/>
		<updated>2014-03-08T10:25:31Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;* メニューアイテムのURL - example.com/products;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;検索エンジンフレンドリーURL&#039;&#039;&#039;,&#039;&#039;&#039;人が読みとれる&#039;&#039;&#039;や[[wikipedia:Clean_URL|clean URLs]]は特定ページへのパスを人と検索エンジン両方に理解できるURLです。Joomla! バージョン1.5以降ではSEF URLを含む全フォーマットでもURLを作成し解析できます。Joomla!の場合、WebサーバのURL書換えに依存しない為、Joomla!はmod_rewriteモジュールを使用しているApache以外のサーバでも作動します。SEF URLは特定の固有パターンがありますがユーザはURL毎に短い説明(エイリアス)を含める事ができます。&lt;br /&gt;
&lt;br /&gt;
内部的にSEF URL(ドメイン名以降)のパスは&#039;&#039;&#039;ルート&#039;&#039;&#039;と呼ばれています。SEF URLの作成と解析処理は&#039;&#039;&#039;ルーティング&#039;&#039;&#039;と呼ばれ関連するコードは&#039;&#039;&#039;ルータ&#039;&#039;&#039;と呼ばれています。&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
ルーティングのよい例がサンプルデータ内の記事&amp;quot;Joomla!へようこそ&amp;quot;です。&lt;br /&gt;
&lt;br /&gt;
* SEF URLが無効のURL &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=1:welcome-to-joomla&amp;amp;catid=1:latest-news&amp;amp;Itemid=50&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* SEF URLが有効でmod_rewriteは無効 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php/the-­news/1-­latest­-news/1­-welcome­-to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* SEF URL,mod_rewrite両方有効 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
検索エンジンフレンドリーURLは&#039;&#039;&#039;グローバル設定&#039;&#039;&#039;内の&#039;&#039;&#039;検索エンジンフレンドリーURL&#039;&#039;&#039;で設定できますこのオプションはJoomla!1.6からデフォルトで有効になっています。詳細は[[S:MyLanguage/Enabling Search Engine Friendly (SEF) URLs|検索エンジンフレンドリーURLを有効化]]を参照して下さい。&lt;br /&gt;
&lt;br /&gt;
== FAQs ==&lt;br /&gt;
&lt;br /&gt;
=== URL内の数字はなんですか？ ===&lt;br /&gt;
古いURLと新しいURLの数字を比較してみましょう古いURLでは&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=1:welcome-to-joomla&amp;amp;catid=1:latest-news&amp;amp;Itemid=50&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
新しいURLでは:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These numbers are the parameters that are needed by Joomla! to get the internal URL and show the page you want to see. (In this case, the first numeral one is the ID of the category, the second numeral one is the ID of the article.)&lt;br /&gt;
&lt;br /&gt;
=== URLには &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt; がありませんこのファイルは削除していいですか？ ===&lt;br /&gt;
削除してはいけませんURLには&amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt;が含まれていませんが内部的にmod_rewriteが表示しないで元のパスへリダイレクトしているためです。&lt;br /&gt;
&lt;br /&gt;
=== [[S:MyLanguage/Alias|エイリアス]]とは？またどの様に作成されますか？ ===&lt;br /&gt;
エイリアスは記事、カテゴリ、セクション、メニューアイテム等のタイトルフィールドの下に表示されています。Joomla!は自動的にエイリアスを作成でき自動作成されたエイリアスはタイトルから始まりすべて小文字に変換されます。スペースやURLで使用できない文字はダッシュに変換されます。&lt;br /&gt;
&lt;br /&gt;
=== エイリアスを自分で作成したい ===&lt;br /&gt;
Joomla!が作成するエイリアスが気に入らない場合、エイリアスフィールドに好きな値を入れる事ができます。大抵の場合URL内に効果的なキーワードを使用するとSEO対策となるでしょう。記事のタイトルにこれらのキーワードを含みJoomla!で作成したり独自のエイリアスを作る事ができます。&lt;br /&gt;
&lt;br /&gt;
=== エイリアスはURLのどの部分に使用されますか？ ===&lt;br /&gt;
メニューアイテムではJoomla!はURLプラグとしてエイリアスを使用します。SEFのオプションを二つとも有効に設定しているとしてProductsというタイトルのメニューアイテムを作った場合のURLはexample.com/productsになります。&lt;br /&gt;
&lt;br /&gt;
Joomla!のルータが正しいページに移動する為、URL内のプライマリーキーを使用しています。上記例のメニューアイテムの種類がカテゴリブログの場合、記事タイトルや続きを読むリンクの3個のパーツ:&lt;br /&gt;
&lt;br /&gt;
* メニューアイテムのURL - example.com/products;&lt;br /&gt;
&lt;br /&gt;
* Plus, the primary key for the Category and the Category alias - 32-fruit;&lt;br /&gt;
&lt;br /&gt;
* Plus, the primary key for the Article and the Article alias - 1-apple;&lt;br /&gt;
&lt;br /&gt;
The complete URL is: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/products/32-fruit/1-apple&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How can I get rid of the numbers in the SEF URLs? ===&lt;br /&gt;
The numbers in the SEF URL are needed by Joomla!&#039;s router to know how to direct site traffic. Once the router logic stabilizes, simple third party system plugins can be developed to augment the router capabilities by allowing more choice. At that time, numbers will likely be removed from the URL.&lt;br /&gt;
&lt;br /&gt;
== Route Formats and the Routing Mechanism ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes Joomla!&#039;s core (built-in) routing mechanism. Routing extensions may change the way routes are created on your system.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Route Formats ===&lt;br /&gt;
&lt;br /&gt;
To describe the Joomla! routing mechanism in more detail, we first need to pin down what we refer to as a &#039;&#039;&#039;route&#039;&#039;&#039;. Suppose that Joomla! has been installed in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/sites/first/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The installation path is generally referred to as the &#039;&#039;&#039;base URL&#039;&#039;&#039;. A possible example URL is &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/sites/first/products/32-fruit/1-apple&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The first part of this URL is the aforementioned base URL, and neither Joomla! nor any component router can create URLs with a different first part. The second part, &amp;lt;code&amp;gt;products/32-fruit/1-apple&amp;lt;/code&amp;gt;, is a &#039;&#039;&#039;route&#039;&#039;&#039;, consisting of three &#039;&#039;&#039;segment&#039;&#039;&#039;s.&lt;br /&gt;
&lt;br /&gt;
The first segment of a route is, for regular URLs, the alias of a menu item. The SEF URL is said to be &#039;&#039;&#039;routed through&#039;&#039;&#039; that menu item. The other segments are determined entirely by the router of the component that provides the type of the menu item. The &#039;&#039;Category - Blog&#039;&#039; menu item type, for example, is provided by the [[Content]] component, and therefore that component&#039;s router is responsible for building and parsing the remaining segments.&lt;br /&gt;
&lt;br /&gt;
It is also possible (for extensions) to ask the system to create a route without supplying a menu item to route through. In that case, the system will usually decide to create a special route that has the word &amp;lt;code&amp;gt;component&amp;lt;/code&amp;gt; as the first segment. These routes are created using a fixed format: the name of the component (without the leading &amp;lt;code&amp;gt;com_&amp;lt;/code&amp;gt;) is selected as the second segment and any parameters as the other segments.&lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
&lt;br /&gt;
It is important to note creating a menu item is the &#039;&#039;only&#039;&#039; way for a Joomla! user to define a route that leads to a specific component. It is, however, possible to create a route without showing it on the site (in a menu). An often-applied method is to create a menu item in a menu that isn&#039;t displayed anywhere. Such a menu is usually called a [[Menu|hidden menu]].&lt;br /&gt;
&lt;br /&gt;
The previous paragraph implies that it is not possible to make one component responsible for handling all routes. For example, it is not possible to specify that the URL &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/thealias&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; should display the Content item with the alias &amp;lt;code&amp;gt;thealias&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;thealias&amp;lt;/code&amp;gt; could be any word. If this needs to be done for a small number of articles, menu items can be created manually for these. Else a routing extension is necessary.&lt;br /&gt;
&lt;br /&gt;
This routing mechanism is therefore not as flexible as users sometimes require. On the other hand, it has one large advantage: it reduces the chance of ambiguous routes (routes that could lead to two different pages). Since the first segment of a route is always a menu item alias, the system immediately knows which component&#039;s router must be used to parse it.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
=== Handling Routes ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes the routing implementation. If you are a component developer, see [[Supporting SEF URLs in your component]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Joomla routes are created and resolved by [[JRouter|the JRouter class]]. This class looks in the component root of the currently active component (specified in the &amp;lt;code&amp;gt;option&amp;lt;/code&amp;gt; parameter in the query string) and includes the &amp;lt;code&amp;gt;router.php&amp;lt;/code&amp;gt; file in that component&#039;s root directory. It then calls one of two functions: one for creating the SEF URL and one for interpreting the SEF URL.&lt;br /&gt;
&lt;br /&gt;
The JRouter class is overridden by the Joomla CMS in &amp;lt;code&amp;gt;/includes/router.php&amp;lt;/code&amp;gt;. In this file the build and parse functions are overridden to properly build and parse the URLs for the Joomla CMS.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;router.php&amp;lt;/code&amp;gt; file in each component (for example, &amp;lt;code&amp;gt;/components/com_content/router.php&amp;lt;/code&amp;gt;) should contain the following two functions:&lt;br /&gt;
* ContentBuildRoute - this builds the SEF URL&lt;br /&gt;
** Parameters&lt;br /&gt;
*** $query - this is a named array containing the querystring variables&lt;br /&gt;
** Returns: an array of segments where each segment is separated by a &#039;/&#039; when later combined to create the actual URL (the items in the array should not contain &#039;/&#039; characters)&lt;br /&gt;
* ContentParseRoute - this interprets an SEF URL&lt;br /&gt;
** Parameters&lt;br /&gt;
*** $segments - this is an array that contains the segments of the URL requested.&lt;br /&gt;
** Returns: a name =&amp;gt; value array of the querystring variables that the link maps to&lt;br /&gt;
&lt;br /&gt;
=== The SEF Plugin ===&lt;br /&gt;
The Joomla &#039;&#039;System - SEF&#039;&#039; plugin inherits &amp;lt;code&amp;gt;JPlugin&amp;lt;/code&amp;gt; and implements the &amp;lt;code&amp;gt;onAfterRender()&amp;lt;/code&amp;gt; function. In this function the body of the response that will be sent to the browser is retrieved using &amp;lt;code&amp;gt;JResponse::getBody()&amp;lt;/code&amp;gt;. The body of the response is then searched for links containing &amp;lt;code&amp;gt;/index.php...&amp;lt;/code&amp;gt; and replaces them with a correct SEF URL by calling &amp;lt;code&amp;gt;JRoute::_(&#039;&#039;url&#039;&#039;)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
JRoute builds SEF URLs by instantiating a &amp;lt;code&amp;gt;JRouter&amp;lt;/code&amp;gt; object and requesting that it build the correct link from the passed in URL.&lt;br /&gt;
&lt;br /&gt;
=== Handling SEF URLs ===&lt;br /&gt;
By default the SEF URLs are handled by the &amp;lt;code&amp;gt;JRouterSite&amp;lt;/code&amp;gt; object (from &amp;lt;code&amp;gt;/includes/router.php&amp;lt;/code&amp;gt;) and is called by a call to &amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; in index.php. This call is made on the &amp;lt;code&amp;gt;$app&amp;lt;/code&amp;gt; variable which is actually an instance of &amp;lt;code&amp;gt;JSite&amp;lt;/code&amp;gt; (from &amp;lt;code&amp;gt;/includes/application.php&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; has a non-destructive result on the &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; array. That is, &amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; sets variables in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; by calling &amp;lt;code&amp;gt;JRequest::set()&amp;lt;/code&amp;gt; with the overwrite flag set to false. Thus if a variable name is returned from &amp;lt;code&amp;gt;JRouter::route()&amp;lt;/code&amp;gt; that is already in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt;, it will not put that value into &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt;. This allows for custom routing.&lt;br /&gt;
&lt;br /&gt;
=== Custom Routing ===&lt;br /&gt;
Joomla allows you to create your own routing mechanism. In order to create this mechanism you must have a plugin that overrides the &amp;lt;code&amp;gt;JPlugin::onAfterInitialise()&amp;lt;/code&amp;gt; function. This function then parses the URL and creates the needed variables in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; before the standard Joomla routing is done.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See [[Creating a System Plugin to augment JRouter]] for an example.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Search Engine Friendly URLs| ]]&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Search_Engine_Friendly_URLs/17/ja&amp;diff=114302</id>
		<title>Translations:Search Engine Friendly URLs/17/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Search_Engine_Friendly_URLs/17/ja&amp;diff=114302"/>
		<updated>2014-03-08T10:25:31Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;* メニューアイテムのURL - example.com/products;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* メニューアイテムのURL - example.com/products;&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Search_Engine_Friendly_URLs/ja&amp;diff=114301</id>
		<title>Search Engine Friendly URLs/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Search_Engine_Friendly_URLs/ja&amp;diff=114301"/>
		<updated>2014-03-08T10:25:01Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;Joomla!のルータが正しいページに移動する為、URL内のプライマリーキーを使用しています。上記例のメニューアイテムの種類がカテ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;検索エンジンフレンドリーURL&#039;&#039;&#039;,&#039;&#039;&#039;人が読みとれる&#039;&#039;&#039;や[[wikipedia:Clean_URL|clean URLs]]は特定ページへのパスを人と検索エンジン両方に理解できるURLです。Joomla! バージョン1.5以降ではSEF URLを含む全フォーマットでもURLを作成し解析できます。Joomla!の場合、WebサーバのURL書換えに依存しない為、Joomla!はmod_rewriteモジュールを使用しているApache以外のサーバでも作動します。SEF URLは特定の固有パターンがありますがユーザはURL毎に短い説明(エイリアス)を含める事ができます。&lt;br /&gt;
&lt;br /&gt;
内部的にSEF URL(ドメイン名以降)のパスは&#039;&#039;&#039;ルート&#039;&#039;&#039;と呼ばれています。SEF URLの作成と解析処理は&#039;&#039;&#039;ルーティング&#039;&#039;&#039;と呼ばれ関連するコードは&#039;&#039;&#039;ルータ&#039;&#039;&#039;と呼ばれています。&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
ルーティングのよい例がサンプルデータ内の記事&amp;quot;Joomla!へようこそ&amp;quot;です。&lt;br /&gt;
&lt;br /&gt;
* SEF URLが無効のURL &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=1:welcome-to-joomla&amp;amp;catid=1:latest-news&amp;amp;Itemid=50&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* SEF URLが有効でmod_rewriteは無効 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php/the-­news/1-­latest­-news/1­-welcome­-to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* SEF URL,mod_rewrite両方有効 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
検索エンジンフレンドリーURLは&#039;&#039;&#039;グローバル設定&#039;&#039;&#039;内の&#039;&#039;&#039;検索エンジンフレンドリーURL&#039;&#039;&#039;で設定できますこのオプションはJoomla!1.6からデフォルトで有効になっています。詳細は[[S:MyLanguage/Enabling Search Engine Friendly (SEF) URLs|検索エンジンフレンドリーURLを有効化]]を参照して下さい。&lt;br /&gt;
&lt;br /&gt;
== FAQs ==&lt;br /&gt;
&lt;br /&gt;
=== URL内の数字はなんですか？ ===&lt;br /&gt;
古いURLと新しいURLの数字を比較してみましょう古いURLでは&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=1:welcome-to-joomla&amp;amp;catid=1:latest-news&amp;amp;Itemid=50&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
新しいURLでは:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These numbers are the parameters that are needed by Joomla! to get the internal URL and show the page you want to see. (In this case, the first numeral one is the ID of the category, the second numeral one is the ID of the article.)&lt;br /&gt;
&lt;br /&gt;
=== URLには &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt; がありませんこのファイルは削除していいですか？ ===&lt;br /&gt;
削除してはいけませんURLには&amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt;が含まれていませんが内部的にmod_rewriteが表示しないで元のパスへリダイレクトしているためです。&lt;br /&gt;
&lt;br /&gt;
=== [[S:MyLanguage/Alias|エイリアス]]とは？またどの様に作成されますか？ ===&lt;br /&gt;
エイリアスは記事、カテゴリ、セクション、メニューアイテム等のタイトルフィールドの下に表示されています。Joomla!は自動的にエイリアスを作成でき自動作成されたエイリアスはタイトルから始まりすべて小文字に変換されます。スペースやURLで使用できない文字はダッシュに変換されます。&lt;br /&gt;
&lt;br /&gt;
=== エイリアスを自分で作成したい ===&lt;br /&gt;
Joomla!が作成するエイリアスが気に入らない場合、エイリアスフィールドに好きな値を入れる事ができます。大抵の場合URL内に効果的なキーワードを使用するとSEO対策となるでしょう。記事のタイトルにこれらのキーワードを含みJoomla!で作成したり独自のエイリアスを作る事ができます。&lt;br /&gt;
&lt;br /&gt;
=== エイリアスはURLのどの部分に使用されますか？ ===&lt;br /&gt;
メニューアイテムではJoomla!はURLプラグとしてエイリアスを使用します。SEFのオプションを二つとも有効に設定しているとしてProductsというタイトルのメニューアイテムを作った場合のURLはexample.com/productsになります。&lt;br /&gt;
&lt;br /&gt;
Joomla!のルータが正しいページに移動する為、URL内のプライマリーキーを使用しています。上記例のメニューアイテムの種類がカテゴリブログの場合、記事タイトルや続きを読むリンクの3個のパーツ:&lt;br /&gt;
&lt;br /&gt;
* The menu item URL - example.com/products;&lt;br /&gt;
&lt;br /&gt;
* Plus, the primary key for the Category and the Category alias - 32-fruit;&lt;br /&gt;
&lt;br /&gt;
* Plus, the primary key for the Article and the Article alias - 1-apple;&lt;br /&gt;
&lt;br /&gt;
The complete URL is: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/products/32-fruit/1-apple&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How can I get rid of the numbers in the SEF URLs? ===&lt;br /&gt;
The numbers in the SEF URL are needed by Joomla!&#039;s router to know how to direct site traffic. Once the router logic stabilizes, simple third party system plugins can be developed to augment the router capabilities by allowing more choice. At that time, numbers will likely be removed from the URL.&lt;br /&gt;
&lt;br /&gt;
== Route Formats and the Routing Mechanism ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes Joomla!&#039;s core (built-in) routing mechanism. Routing extensions may change the way routes are created on your system.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Route Formats ===&lt;br /&gt;
&lt;br /&gt;
To describe the Joomla! routing mechanism in more detail, we first need to pin down what we refer to as a &#039;&#039;&#039;route&#039;&#039;&#039;. Suppose that Joomla! has been installed in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/sites/first/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The installation path is generally referred to as the &#039;&#039;&#039;base URL&#039;&#039;&#039;. A possible example URL is &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/sites/first/products/32-fruit/1-apple&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The first part of this URL is the aforementioned base URL, and neither Joomla! nor any component router can create URLs with a different first part. The second part, &amp;lt;code&amp;gt;products/32-fruit/1-apple&amp;lt;/code&amp;gt;, is a &#039;&#039;&#039;route&#039;&#039;&#039;, consisting of three &#039;&#039;&#039;segment&#039;&#039;&#039;s.&lt;br /&gt;
&lt;br /&gt;
The first segment of a route is, for regular URLs, the alias of a menu item. The SEF URL is said to be &#039;&#039;&#039;routed through&#039;&#039;&#039; that menu item. The other segments are determined entirely by the router of the component that provides the type of the menu item. The &#039;&#039;Category - Blog&#039;&#039; menu item type, for example, is provided by the [[Content]] component, and therefore that component&#039;s router is responsible for building and parsing the remaining segments.&lt;br /&gt;
&lt;br /&gt;
It is also possible (for extensions) to ask the system to create a route without supplying a menu item to route through. In that case, the system will usually decide to create a special route that has the word &amp;lt;code&amp;gt;component&amp;lt;/code&amp;gt; as the first segment. These routes are created using a fixed format: the name of the component (without the leading &amp;lt;code&amp;gt;com_&amp;lt;/code&amp;gt;) is selected as the second segment and any parameters as the other segments.&lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
&lt;br /&gt;
It is important to note creating a menu item is the &#039;&#039;only&#039;&#039; way for a Joomla! user to define a route that leads to a specific component. It is, however, possible to create a route without showing it on the site (in a menu). An often-applied method is to create a menu item in a menu that isn&#039;t displayed anywhere. Such a menu is usually called a [[Menu|hidden menu]].&lt;br /&gt;
&lt;br /&gt;
The previous paragraph implies that it is not possible to make one component responsible for handling all routes. For example, it is not possible to specify that the URL &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/thealias&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; should display the Content item with the alias &amp;lt;code&amp;gt;thealias&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;thealias&amp;lt;/code&amp;gt; could be any word. If this needs to be done for a small number of articles, menu items can be created manually for these. Else a routing extension is necessary.&lt;br /&gt;
&lt;br /&gt;
This routing mechanism is therefore not as flexible as users sometimes require. On the other hand, it has one large advantage: it reduces the chance of ambiguous routes (routes that could lead to two different pages). Since the first segment of a route is always a menu item alias, the system immediately knows which component&#039;s router must be used to parse it.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
=== Handling Routes ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes the routing implementation. If you are a component developer, see [[Supporting SEF URLs in your component]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Joomla routes are created and resolved by [[JRouter|the JRouter class]]. This class looks in the component root of the currently active component (specified in the &amp;lt;code&amp;gt;option&amp;lt;/code&amp;gt; parameter in the query string) and includes the &amp;lt;code&amp;gt;router.php&amp;lt;/code&amp;gt; file in that component&#039;s root directory. It then calls one of two functions: one for creating the SEF URL and one for interpreting the SEF URL.&lt;br /&gt;
&lt;br /&gt;
The JRouter class is overridden by the Joomla CMS in &amp;lt;code&amp;gt;/includes/router.php&amp;lt;/code&amp;gt;. In this file the build and parse functions are overridden to properly build and parse the URLs for the Joomla CMS.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;router.php&amp;lt;/code&amp;gt; file in each component (for example, &amp;lt;code&amp;gt;/components/com_content/router.php&amp;lt;/code&amp;gt;) should contain the following two functions:&lt;br /&gt;
* ContentBuildRoute - this builds the SEF URL&lt;br /&gt;
** Parameters&lt;br /&gt;
*** $query - this is a named array containing the querystring variables&lt;br /&gt;
** Returns: an array of segments where each segment is separated by a &#039;/&#039; when later combined to create the actual URL (the items in the array should not contain &#039;/&#039; characters)&lt;br /&gt;
* ContentParseRoute - this interprets an SEF URL&lt;br /&gt;
** Parameters&lt;br /&gt;
*** $segments - this is an array that contains the segments of the URL requested.&lt;br /&gt;
** Returns: a name =&amp;gt; value array of the querystring variables that the link maps to&lt;br /&gt;
&lt;br /&gt;
=== The SEF Plugin ===&lt;br /&gt;
The Joomla &#039;&#039;System - SEF&#039;&#039; plugin inherits &amp;lt;code&amp;gt;JPlugin&amp;lt;/code&amp;gt; and implements the &amp;lt;code&amp;gt;onAfterRender()&amp;lt;/code&amp;gt; function. In this function the body of the response that will be sent to the browser is retrieved using &amp;lt;code&amp;gt;JResponse::getBody()&amp;lt;/code&amp;gt;. The body of the response is then searched for links containing &amp;lt;code&amp;gt;/index.php...&amp;lt;/code&amp;gt; and replaces them with a correct SEF URL by calling &amp;lt;code&amp;gt;JRoute::_(&#039;&#039;url&#039;&#039;)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
JRoute builds SEF URLs by instantiating a &amp;lt;code&amp;gt;JRouter&amp;lt;/code&amp;gt; object and requesting that it build the correct link from the passed in URL.&lt;br /&gt;
&lt;br /&gt;
=== Handling SEF URLs ===&lt;br /&gt;
By default the SEF URLs are handled by the &amp;lt;code&amp;gt;JRouterSite&amp;lt;/code&amp;gt; object (from &amp;lt;code&amp;gt;/includes/router.php&amp;lt;/code&amp;gt;) and is called by a call to &amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; in index.php. This call is made on the &amp;lt;code&amp;gt;$app&amp;lt;/code&amp;gt; variable which is actually an instance of &amp;lt;code&amp;gt;JSite&amp;lt;/code&amp;gt; (from &amp;lt;code&amp;gt;/includes/application.php&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; has a non-destructive result on the &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; array. That is, &amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; sets variables in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; by calling &amp;lt;code&amp;gt;JRequest::set()&amp;lt;/code&amp;gt; with the overwrite flag set to false. Thus if a variable name is returned from &amp;lt;code&amp;gt;JRouter::route()&amp;lt;/code&amp;gt; that is already in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt;, it will not put that value into &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt;. This allows for custom routing.&lt;br /&gt;
&lt;br /&gt;
=== Custom Routing ===&lt;br /&gt;
Joomla allows you to create your own routing mechanism. In order to create this mechanism you must have a plugin that overrides the &amp;lt;code&amp;gt;JPlugin::onAfterInitialise()&amp;lt;/code&amp;gt; function. This function then parses the URL and creates the needed variables in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; before the standard Joomla routing is done.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See [[Creating a System Plugin to augment JRouter]] for an example.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Search Engine Friendly URLs| ]]&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Search_Engine_Friendly_URLs/16/ja&amp;diff=114300</id>
		<title>Translations:Search Engine Friendly URLs/16/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Search_Engine_Friendly_URLs/16/ja&amp;diff=114300"/>
		<updated>2014-03-08T10:25:00Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;Joomla!のルータが正しいページに移動する為、URL内のプライマリーキーを使用しています。上記例のメニューアイテムの種類がカテ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Joomla!のルータが正しいページに移動する為、URL内のプライマリーキーを使用しています。上記例のメニューアイテムの種類がカテゴリブログの場合、記事タイトルや続きを読むリンクの3個のパーツ:&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Search_Engine_Friendly_URLs/ja&amp;diff=114299</id>
		<title>Search Engine Friendly URLs/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Search_Engine_Friendly_URLs/ja&amp;diff=114299"/>
		<updated>2014-03-08T10:16:57Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;=== エイリアスはURLのどの部分に使用されますか？ === メニューアイテムではJoomla!はURLプラグとしてエイリアスを使用します。SEFの...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;検索エンジンフレンドリーURL&#039;&#039;&#039;,&#039;&#039;&#039;人が読みとれる&#039;&#039;&#039;や[[wikipedia:Clean_URL|clean URLs]]は特定ページへのパスを人と検索エンジン両方に理解できるURLです。Joomla! バージョン1.5以降ではSEF URLを含む全フォーマットでもURLを作成し解析できます。Joomla!の場合、WebサーバのURL書換えに依存しない為、Joomla!はmod_rewriteモジュールを使用しているApache以外のサーバでも作動します。SEF URLは特定の固有パターンがありますがユーザはURL毎に短い説明(エイリアス)を含める事ができます。&lt;br /&gt;
&lt;br /&gt;
内部的にSEF URL(ドメイン名以降)のパスは&#039;&#039;&#039;ルート&#039;&#039;&#039;と呼ばれています。SEF URLの作成と解析処理は&#039;&#039;&#039;ルーティング&#039;&#039;&#039;と呼ばれ関連するコードは&#039;&#039;&#039;ルータ&#039;&#039;&#039;と呼ばれています。&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
ルーティングのよい例がサンプルデータ内の記事&amp;quot;Joomla!へようこそ&amp;quot;です。&lt;br /&gt;
&lt;br /&gt;
* SEF URLが無効のURL &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=1:welcome-to-joomla&amp;amp;catid=1:latest-news&amp;amp;Itemid=50&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* SEF URLが有効でmod_rewriteは無効 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php/the-­news/1-­latest­-news/1­-welcome­-to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* SEF URL,mod_rewrite両方有効 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
検索エンジンフレンドリーURLは&#039;&#039;&#039;グローバル設定&#039;&#039;&#039;内の&#039;&#039;&#039;検索エンジンフレンドリーURL&#039;&#039;&#039;で設定できますこのオプションはJoomla!1.6からデフォルトで有効になっています。詳細は[[S:MyLanguage/Enabling Search Engine Friendly (SEF) URLs|検索エンジンフレンドリーURLを有効化]]を参照して下さい。&lt;br /&gt;
&lt;br /&gt;
== FAQs ==&lt;br /&gt;
&lt;br /&gt;
=== URL内の数字はなんですか？ ===&lt;br /&gt;
古いURLと新しいURLの数字を比較してみましょう古いURLでは&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=1:welcome-to-joomla&amp;amp;catid=1:latest-news&amp;amp;Itemid=50&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
新しいURLでは:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These numbers are the parameters that are needed by Joomla! to get the internal URL and show the page you want to see. (In this case, the first numeral one is the ID of the category, the second numeral one is the ID of the article.)&lt;br /&gt;
&lt;br /&gt;
=== URLには &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt; がありませんこのファイルは削除していいですか？ ===&lt;br /&gt;
削除してはいけませんURLには&amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt;が含まれていませんが内部的にmod_rewriteが表示しないで元のパスへリダイレクトしているためです。&lt;br /&gt;
&lt;br /&gt;
=== [[S:MyLanguage/Alias|エイリアス]]とは？またどの様に作成されますか？ ===&lt;br /&gt;
エイリアスは記事、カテゴリ、セクション、メニューアイテム等のタイトルフィールドの下に表示されています。Joomla!は自動的にエイリアスを作成でき自動作成されたエイリアスはタイトルから始まりすべて小文字に変換されます。スペースやURLで使用できない文字はダッシュに変換されます。&lt;br /&gt;
&lt;br /&gt;
=== エイリアスを自分で作成したい ===&lt;br /&gt;
Joomla!が作成するエイリアスが気に入らない場合、エイリアスフィールドに好きな値を入れる事ができます。大抵の場合URL内に効果的なキーワードを使用するとSEO対策となるでしょう。記事のタイトルにこれらのキーワードを含みJoomla!で作成したり独自のエイリアスを作る事ができます。&lt;br /&gt;
&lt;br /&gt;
=== エイリアスはURLのどの部分に使用されますか？ ===&lt;br /&gt;
メニューアイテムではJoomla!はURLプラグとしてエイリアスを使用します。SEFのオプションを二つとも有効に設定しているとしてProductsというタイトルのメニューアイテムを作った場合のURLはexample.com/productsになります。&lt;br /&gt;
&lt;br /&gt;
Joomla! also uses the primary key values of data within the URL to help the router navigate to the correct page. Continuing with the previous example, if your products menu item was for an Article­/Category Blog, the link for the Article Title and/or Read More link would have three parts:&lt;br /&gt;
&lt;br /&gt;
* The menu item URL - example.com/products;&lt;br /&gt;
&lt;br /&gt;
* Plus, the primary key for the Category and the Category alias - 32-fruit;&lt;br /&gt;
&lt;br /&gt;
* Plus, the primary key for the Article and the Article alias - 1-apple;&lt;br /&gt;
&lt;br /&gt;
The complete URL is: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/products/32-fruit/1-apple&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How can I get rid of the numbers in the SEF URLs? ===&lt;br /&gt;
The numbers in the SEF URL are needed by Joomla!&#039;s router to know how to direct site traffic. Once the router logic stabilizes, simple third party system plugins can be developed to augment the router capabilities by allowing more choice. At that time, numbers will likely be removed from the URL.&lt;br /&gt;
&lt;br /&gt;
== Route Formats and the Routing Mechanism ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes Joomla!&#039;s core (built-in) routing mechanism. Routing extensions may change the way routes are created on your system.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Route Formats ===&lt;br /&gt;
&lt;br /&gt;
To describe the Joomla! routing mechanism in more detail, we first need to pin down what we refer to as a &#039;&#039;&#039;route&#039;&#039;&#039;. Suppose that Joomla! has been installed in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/sites/first/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The installation path is generally referred to as the &#039;&#039;&#039;base URL&#039;&#039;&#039;. A possible example URL is &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/sites/first/products/32-fruit/1-apple&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The first part of this URL is the aforementioned base URL, and neither Joomla! nor any component router can create URLs with a different first part. The second part, &amp;lt;code&amp;gt;products/32-fruit/1-apple&amp;lt;/code&amp;gt;, is a &#039;&#039;&#039;route&#039;&#039;&#039;, consisting of three &#039;&#039;&#039;segment&#039;&#039;&#039;s.&lt;br /&gt;
&lt;br /&gt;
The first segment of a route is, for regular URLs, the alias of a menu item. The SEF URL is said to be &#039;&#039;&#039;routed through&#039;&#039;&#039; that menu item. The other segments are determined entirely by the router of the component that provides the type of the menu item. The &#039;&#039;Category - Blog&#039;&#039; menu item type, for example, is provided by the [[Content]] component, and therefore that component&#039;s router is responsible for building and parsing the remaining segments.&lt;br /&gt;
&lt;br /&gt;
It is also possible (for extensions) to ask the system to create a route without supplying a menu item to route through. In that case, the system will usually decide to create a special route that has the word &amp;lt;code&amp;gt;component&amp;lt;/code&amp;gt; as the first segment. These routes are created using a fixed format: the name of the component (without the leading &amp;lt;code&amp;gt;com_&amp;lt;/code&amp;gt;) is selected as the second segment and any parameters as the other segments.&lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
&lt;br /&gt;
It is important to note creating a menu item is the &#039;&#039;only&#039;&#039; way for a Joomla! user to define a route that leads to a specific component. It is, however, possible to create a route without showing it on the site (in a menu). An often-applied method is to create a menu item in a menu that isn&#039;t displayed anywhere. Such a menu is usually called a [[Menu|hidden menu]].&lt;br /&gt;
&lt;br /&gt;
The previous paragraph implies that it is not possible to make one component responsible for handling all routes. For example, it is not possible to specify that the URL &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/thealias&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; should display the Content item with the alias &amp;lt;code&amp;gt;thealias&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;thealias&amp;lt;/code&amp;gt; could be any word. If this needs to be done for a small number of articles, menu items can be created manually for these. Else a routing extension is necessary.&lt;br /&gt;
&lt;br /&gt;
This routing mechanism is therefore not as flexible as users sometimes require. On the other hand, it has one large advantage: it reduces the chance of ambiguous routes (routes that could lead to two different pages). Since the first segment of a route is always a menu item alias, the system immediately knows which component&#039;s router must be used to parse it.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
=== Handling Routes ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes the routing implementation. If you are a component developer, see [[Supporting SEF URLs in your component]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Joomla routes are created and resolved by [[JRouter|the JRouter class]]. This class looks in the component root of the currently active component (specified in the &amp;lt;code&amp;gt;option&amp;lt;/code&amp;gt; parameter in the query string) and includes the &amp;lt;code&amp;gt;router.php&amp;lt;/code&amp;gt; file in that component&#039;s root directory. It then calls one of two functions: one for creating the SEF URL and one for interpreting the SEF URL.&lt;br /&gt;
&lt;br /&gt;
The JRouter class is overridden by the Joomla CMS in &amp;lt;code&amp;gt;/includes/router.php&amp;lt;/code&amp;gt;. In this file the build and parse functions are overridden to properly build and parse the URLs for the Joomla CMS.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;router.php&amp;lt;/code&amp;gt; file in each component (for example, &amp;lt;code&amp;gt;/components/com_content/router.php&amp;lt;/code&amp;gt;) should contain the following two functions:&lt;br /&gt;
* ContentBuildRoute - this builds the SEF URL&lt;br /&gt;
** Parameters&lt;br /&gt;
*** $query - this is a named array containing the querystring variables&lt;br /&gt;
** Returns: an array of segments where each segment is separated by a &#039;/&#039; when later combined to create the actual URL (the items in the array should not contain &#039;/&#039; characters)&lt;br /&gt;
* ContentParseRoute - this interprets an SEF URL&lt;br /&gt;
** Parameters&lt;br /&gt;
*** $segments - this is an array that contains the segments of the URL requested.&lt;br /&gt;
** Returns: a name =&amp;gt; value array of the querystring variables that the link maps to&lt;br /&gt;
&lt;br /&gt;
=== The SEF Plugin ===&lt;br /&gt;
The Joomla &#039;&#039;System - SEF&#039;&#039; plugin inherits &amp;lt;code&amp;gt;JPlugin&amp;lt;/code&amp;gt; and implements the &amp;lt;code&amp;gt;onAfterRender()&amp;lt;/code&amp;gt; function. In this function the body of the response that will be sent to the browser is retrieved using &amp;lt;code&amp;gt;JResponse::getBody()&amp;lt;/code&amp;gt;. The body of the response is then searched for links containing &amp;lt;code&amp;gt;/index.php...&amp;lt;/code&amp;gt; and replaces them with a correct SEF URL by calling &amp;lt;code&amp;gt;JRoute::_(&#039;&#039;url&#039;&#039;)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
JRoute builds SEF URLs by instantiating a &amp;lt;code&amp;gt;JRouter&amp;lt;/code&amp;gt; object and requesting that it build the correct link from the passed in URL.&lt;br /&gt;
&lt;br /&gt;
=== Handling SEF URLs ===&lt;br /&gt;
By default the SEF URLs are handled by the &amp;lt;code&amp;gt;JRouterSite&amp;lt;/code&amp;gt; object (from &amp;lt;code&amp;gt;/includes/router.php&amp;lt;/code&amp;gt;) and is called by a call to &amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; in index.php. This call is made on the &amp;lt;code&amp;gt;$app&amp;lt;/code&amp;gt; variable which is actually an instance of &amp;lt;code&amp;gt;JSite&amp;lt;/code&amp;gt; (from &amp;lt;code&amp;gt;/includes/application.php&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; has a non-destructive result on the &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; array. That is, &amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; sets variables in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; by calling &amp;lt;code&amp;gt;JRequest::set()&amp;lt;/code&amp;gt; with the overwrite flag set to false. Thus if a variable name is returned from &amp;lt;code&amp;gt;JRouter::route()&amp;lt;/code&amp;gt; that is already in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt;, it will not put that value into &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt;. This allows for custom routing.&lt;br /&gt;
&lt;br /&gt;
=== Custom Routing ===&lt;br /&gt;
Joomla allows you to create your own routing mechanism. In order to create this mechanism you must have a plugin that overrides the &amp;lt;code&amp;gt;JPlugin::onAfterInitialise()&amp;lt;/code&amp;gt; function. This function then parses the URL and creates the needed variables in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; before the standard Joomla routing is done.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See [[Creating a System Plugin to augment JRouter]] for an example.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Search Engine Friendly URLs| ]]&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Search_Engine_Friendly_URLs/15/ja&amp;diff=114298</id>
		<title>Translations:Search Engine Friendly URLs/15/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Search_Engine_Friendly_URLs/15/ja&amp;diff=114298"/>
		<updated>2014-03-08T10:16:56Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;=== エイリアスはURLのどの部分に使用されますか？ === メニューアイテムではJoomla!はURLプラグとしてエイリアスを使用します。SEFの...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== エイリアスはURLのどの部分に使用されますか？ ===&lt;br /&gt;
メニューアイテムではJoomla!はURLプラグとしてエイリアスを使用します。SEFのオプションを二つとも有効に設定しているとしてProductsというタイトルのメニューアイテムを作った場合のURLはexample.com/productsになります。&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Search_Engine_Friendly_URLs/ja&amp;diff=114297</id>
		<title>Search Engine Friendly URLs/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Search_Engine_Friendly_URLs/ja&amp;diff=114297"/>
		<updated>2014-03-08T10:09:59Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;=== エイリアスを自分で作成したい === Joomla!が作成するエイリアスが気に入らない場合、エイリアスフィールドに好きな値を入れる...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;検索エンジンフレンドリーURL&#039;&#039;&#039;,&#039;&#039;&#039;人が読みとれる&#039;&#039;&#039;や[[wikipedia:Clean_URL|clean URLs]]は特定ページへのパスを人と検索エンジン両方に理解できるURLです。Joomla! バージョン1.5以降ではSEF URLを含む全フォーマットでもURLを作成し解析できます。Joomla!の場合、WebサーバのURL書換えに依存しない為、Joomla!はmod_rewriteモジュールを使用しているApache以外のサーバでも作動します。SEF URLは特定の固有パターンがありますがユーザはURL毎に短い説明(エイリアス)を含める事ができます。&lt;br /&gt;
&lt;br /&gt;
内部的にSEF URL(ドメイン名以降)のパスは&#039;&#039;&#039;ルート&#039;&#039;&#039;と呼ばれています。SEF URLの作成と解析処理は&#039;&#039;&#039;ルーティング&#039;&#039;&#039;と呼ばれ関連するコードは&#039;&#039;&#039;ルータ&#039;&#039;&#039;と呼ばれています。&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
ルーティングのよい例がサンプルデータ内の記事&amp;quot;Joomla!へようこそ&amp;quot;です。&lt;br /&gt;
&lt;br /&gt;
* SEF URLが無効のURL &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=1:welcome-to-joomla&amp;amp;catid=1:latest-news&amp;amp;Itemid=50&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* SEF URLが有効でmod_rewriteは無効 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php/the-­news/1-­latest­-news/1­-welcome­-to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* SEF URL,mod_rewrite両方有効 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
検索エンジンフレンドリーURLは&#039;&#039;&#039;グローバル設定&#039;&#039;&#039;内の&#039;&#039;&#039;検索エンジンフレンドリーURL&#039;&#039;&#039;で設定できますこのオプションはJoomla!1.6からデフォルトで有効になっています。詳細は[[S:MyLanguage/Enabling Search Engine Friendly (SEF) URLs|検索エンジンフレンドリーURLを有効化]]を参照して下さい。&lt;br /&gt;
&lt;br /&gt;
== FAQs ==&lt;br /&gt;
&lt;br /&gt;
=== URL内の数字はなんですか？ ===&lt;br /&gt;
古いURLと新しいURLの数字を比較してみましょう古いURLでは&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=1:welcome-to-joomla&amp;amp;catid=1:latest-news&amp;amp;Itemid=50&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
新しいURLでは:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These numbers are the parameters that are needed by Joomla! to get the internal URL and show the page you want to see. (In this case, the first numeral one is the ID of the category, the second numeral one is the ID of the article.)&lt;br /&gt;
&lt;br /&gt;
=== URLには &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt; がありませんこのファイルは削除していいですか？ ===&lt;br /&gt;
削除してはいけませんURLには&amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt;が含まれていませんが内部的にmod_rewriteが表示しないで元のパスへリダイレクトしているためです。&lt;br /&gt;
&lt;br /&gt;
=== [[S:MyLanguage/Alias|エイリアス]]とは？またどの様に作成されますか？ ===&lt;br /&gt;
エイリアスは記事、カテゴリ、セクション、メニューアイテム等のタイトルフィールドの下に表示されています。Joomla!は自動的にエイリアスを作成でき自動作成されたエイリアスはタイトルから始まりすべて小文字に変換されます。スペースやURLで使用できない文字はダッシュに変換されます。&lt;br /&gt;
&lt;br /&gt;
=== エイリアスを自分で作成したい ===&lt;br /&gt;
Joomla!が作成するエイリアスが気に入らない場合、エイリアスフィールドに好きな値を入れる事ができます。大抵の場合URL内に効果的なキーワードを使用するとSEO対策となるでしょう。記事のタイトルにこれらのキーワードを含みJoomla!で作成したり独自のエイリアスを作る事ができます。&lt;br /&gt;
&lt;br /&gt;
=== How is Alias used in a URL? ===&lt;br /&gt;
For a menu item, Joomla! uses the alias as the URL plug. Assume that you use the first two SEF URL options and you create a menu item called Products. Your URL would be example.com/products.&lt;br /&gt;
&lt;br /&gt;
Joomla! also uses the primary key values of data within the URL to help the router navigate to the correct page. Continuing with the previous example, if your products menu item was for an Article­/Category Blog, the link for the Article Title and/or Read More link would have three parts:&lt;br /&gt;
&lt;br /&gt;
* The menu item URL - example.com/products;&lt;br /&gt;
&lt;br /&gt;
* Plus, the primary key for the Category and the Category alias - 32-fruit;&lt;br /&gt;
&lt;br /&gt;
* Plus, the primary key for the Article and the Article alias - 1-apple;&lt;br /&gt;
&lt;br /&gt;
The complete URL is: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/products/32-fruit/1-apple&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How can I get rid of the numbers in the SEF URLs? ===&lt;br /&gt;
The numbers in the SEF URL are needed by Joomla!&#039;s router to know how to direct site traffic. Once the router logic stabilizes, simple third party system plugins can be developed to augment the router capabilities by allowing more choice. At that time, numbers will likely be removed from the URL.&lt;br /&gt;
&lt;br /&gt;
== Route Formats and the Routing Mechanism ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes Joomla!&#039;s core (built-in) routing mechanism. Routing extensions may change the way routes are created on your system.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Route Formats ===&lt;br /&gt;
&lt;br /&gt;
To describe the Joomla! routing mechanism in more detail, we first need to pin down what we refer to as a &#039;&#039;&#039;route&#039;&#039;&#039;. Suppose that Joomla! has been installed in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/sites/first/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The installation path is generally referred to as the &#039;&#039;&#039;base URL&#039;&#039;&#039;. A possible example URL is &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/sites/first/products/32-fruit/1-apple&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The first part of this URL is the aforementioned base URL, and neither Joomla! nor any component router can create URLs with a different first part. The second part, &amp;lt;code&amp;gt;products/32-fruit/1-apple&amp;lt;/code&amp;gt;, is a &#039;&#039;&#039;route&#039;&#039;&#039;, consisting of three &#039;&#039;&#039;segment&#039;&#039;&#039;s.&lt;br /&gt;
&lt;br /&gt;
The first segment of a route is, for regular URLs, the alias of a menu item. The SEF URL is said to be &#039;&#039;&#039;routed through&#039;&#039;&#039; that menu item. The other segments are determined entirely by the router of the component that provides the type of the menu item. The &#039;&#039;Category - Blog&#039;&#039; menu item type, for example, is provided by the [[Content]] component, and therefore that component&#039;s router is responsible for building and parsing the remaining segments.&lt;br /&gt;
&lt;br /&gt;
It is also possible (for extensions) to ask the system to create a route without supplying a menu item to route through. In that case, the system will usually decide to create a special route that has the word &amp;lt;code&amp;gt;component&amp;lt;/code&amp;gt; as the first segment. These routes are created using a fixed format: the name of the component (without the leading &amp;lt;code&amp;gt;com_&amp;lt;/code&amp;gt;) is selected as the second segment and any parameters as the other segments.&lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
&lt;br /&gt;
It is important to note creating a menu item is the &#039;&#039;only&#039;&#039; way for a Joomla! user to define a route that leads to a specific component. It is, however, possible to create a route without showing it on the site (in a menu). An often-applied method is to create a menu item in a menu that isn&#039;t displayed anywhere. Such a menu is usually called a [[Menu|hidden menu]].&lt;br /&gt;
&lt;br /&gt;
The previous paragraph implies that it is not possible to make one component responsible for handling all routes. For example, it is not possible to specify that the URL &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/thealias&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; should display the Content item with the alias &amp;lt;code&amp;gt;thealias&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;thealias&amp;lt;/code&amp;gt; could be any word. If this needs to be done for a small number of articles, menu items can be created manually for these. Else a routing extension is necessary.&lt;br /&gt;
&lt;br /&gt;
This routing mechanism is therefore not as flexible as users sometimes require. On the other hand, it has one large advantage: it reduces the chance of ambiguous routes (routes that could lead to two different pages). Since the first segment of a route is always a menu item alias, the system immediately knows which component&#039;s router must be used to parse it.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
=== Handling Routes ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes the routing implementation. If you are a component developer, see [[Supporting SEF URLs in your component]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Joomla routes are created and resolved by [[JRouter|the JRouter class]]. This class looks in the component root of the currently active component (specified in the &amp;lt;code&amp;gt;option&amp;lt;/code&amp;gt; parameter in the query string) and includes the &amp;lt;code&amp;gt;router.php&amp;lt;/code&amp;gt; file in that component&#039;s root directory. It then calls one of two functions: one for creating the SEF URL and one for interpreting the SEF URL.&lt;br /&gt;
&lt;br /&gt;
The JRouter class is overridden by the Joomla CMS in &amp;lt;code&amp;gt;/includes/router.php&amp;lt;/code&amp;gt;. In this file the build and parse functions are overridden to properly build and parse the URLs for the Joomla CMS.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;router.php&amp;lt;/code&amp;gt; file in each component (for example, &amp;lt;code&amp;gt;/components/com_content/router.php&amp;lt;/code&amp;gt;) should contain the following two functions:&lt;br /&gt;
* ContentBuildRoute - this builds the SEF URL&lt;br /&gt;
** Parameters&lt;br /&gt;
*** $query - this is a named array containing the querystring variables&lt;br /&gt;
** Returns: an array of segments where each segment is separated by a &#039;/&#039; when later combined to create the actual URL (the items in the array should not contain &#039;/&#039; characters)&lt;br /&gt;
* ContentParseRoute - this interprets an SEF URL&lt;br /&gt;
** Parameters&lt;br /&gt;
*** $segments - this is an array that contains the segments of the URL requested.&lt;br /&gt;
** Returns: a name =&amp;gt; value array of the querystring variables that the link maps to&lt;br /&gt;
&lt;br /&gt;
=== The SEF Plugin ===&lt;br /&gt;
The Joomla &#039;&#039;System - SEF&#039;&#039; plugin inherits &amp;lt;code&amp;gt;JPlugin&amp;lt;/code&amp;gt; and implements the &amp;lt;code&amp;gt;onAfterRender()&amp;lt;/code&amp;gt; function. In this function the body of the response that will be sent to the browser is retrieved using &amp;lt;code&amp;gt;JResponse::getBody()&amp;lt;/code&amp;gt;. The body of the response is then searched for links containing &amp;lt;code&amp;gt;/index.php...&amp;lt;/code&amp;gt; and replaces them with a correct SEF URL by calling &amp;lt;code&amp;gt;JRoute::_(&#039;&#039;url&#039;&#039;)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
JRoute builds SEF URLs by instantiating a &amp;lt;code&amp;gt;JRouter&amp;lt;/code&amp;gt; object and requesting that it build the correct link from the passed in URL.&lt;br /&gt;
&lt;br /&gt;
=== Handling SEF URLs ===&lt;br /&gt;
By default the SEF URLs are handled by the &amp;lt;code&amp;gt;JRouterSite&amp;lt;/code&amp;gt; object (from &amp;lt;code&amp;gt;/includes/router.php&amp;lt;/code&amp;gt;) and is called by a call to &amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; in index.php. This call is made on the &amp;lt;code&amp;gt;$app&amp;lt;/code&amp;gt; variable which is actually an instance of &amp;lt;code&amp;gt;JSite&amp;lt;/code&amp;gt; (from &amp;lt;code&amp;gt;/includes/application.php&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; has a non-destructive result on the &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; array. That is, &amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; sets variables in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; by calling &amp;lt;code&amp;gt;JRequest::set()&amp;lt;/code&amp;gt; with the overwrite flag set to false. Thus if a variable name is returned from &amp;lt;code&amp;gt;JRouter::route()&amp;lt;/code&amp;gt; that is already in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt;, it will not put that value into &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt;. This allows for custom routing.&lt;br /&gt;
&lt;br /&gt;
=== Custom Routing ===&lt;br /&gt;
Joomla allows you to create your own routing mechanism. In order to create this mechanism you must have a plugin that overrides the &amp;lt;code&amp;gt;JPlugin::onAfterInitialise()&amp;lt;/code&amp;gt; function. This function then parses the URL and creates the needed variables in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; before the standard Joomla routing is done.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See [[Creating a System Plugin to augment JRouter]] for an example.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Search Engine Friendly URLs| ]]&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Search_Engine_Friendly_URLs/14/ja&amp;diff=114296</id>
		<title>Translations:Search Engine Friendly URLs/14/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Search_Engine_Friendly_URLs/14/ja&amp;diff=114296"/>
		<updated>2014-03-08T10:09:59Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;=== エイリアスを自分で作成したい === Joomla!が作成するエイリアスが気に入らない場合、エイリアスフィールドに好きな値を入れる...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== エイリアスを自分で作成したい ===&lt;br /&gt;
Joomla!が作成するエイリアスが気に入らない場合、エイリアスフィールドに好きな値を入れる事ができます。大抵の場合URL内に効果的なキーワードを使用するとSEO対策となるでしょう。記事のタイトルにこれらのキーワードを含みJoomla!で作成したり独自のエイリアスを作る事ができます。&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Search_Engine_Friendly_URLs/ja&amp;diff=114295</id>
		<title>Search Engine Friendly URLs/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Search_Engine_Friendly_URLs/ja&amp;diff=114295"/>
		<updated>2014-03-08T10:02:00Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;=== エイリアスとは？またどの様に作成されますか？ === エイリアスは記事、カテゴリ、セクション、メニューア...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;検索エンジンフレンドリーURL&#039;&#039;&#039;,&#039;&#039;&#039;人が読みとれる&#039;&#039;&#039;や[[wikipedia:Clean_URL|clean URLs]]は特定ページへのパスを人と検索エンジン両方に理解できるURLです。Joomla! バージョン1.5以降ではSEF URLを含む全フォーマットでもURLを作成し解析できます。Joomla!の場合、WebサーバのURL書換えに依存しない為、Joomla!はmod_rewriteモジュールを使用しているApache以外のサーバでも作動します。SEF URLは特定の固有パターンがありますがユーザはURL毎に短い説明(エイリアス)を含める事ができます。&lt;br /&gt;
&lt;br /&gt;
内部的にSEF URL(ドメイン名以降)のパスは&#039;&#039;&#039;ルート&#039;&#039;&#039;と呼ばれています。SEF URLの作成と解析処理は&#039;&#039;&#039;ルーティング&#039;&#039;&#039;と呼ばれ関連するコードは&#039;&#039;&#039;ルータ&#039;&#039;&#039;と呼ばれています。&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
ルーティングのよい例がサンプルデータ内の記事&amp;quot;Joomla!へようこそ&amp;quot;です。&lt;br /&gt;
&lt;br /&gt;
* SEF URLが無効のURL &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=1:welcome-to-joomla&amp;amp;catid=1:latest-news&amp;amp;Itemid=50&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* SEF URLが有効でmod_rewriteは無効 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php/the-­news/1-­latest­-news/1­-welcome­-to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* SEF URL,mod_rewrite両方有効 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
検索エンジンフレンドリーURLは&#039;&#039;&#039;グローバル設定&#039;&#039;&#039;内の&#039;&#039;&#039;検索エンジンフレンドリーURL&#039;&#039;&#039;で設定できますこのオプションはJoomla!1.6からデフォルトで有効になっています。詳細は[[S:MyLanguage/Enabling Search Engine Friendly (SEF) URLs|検索エンジンフレンドリーURLを有効化]]を参照して下さい。&lt;br /&gt;
&lt;br /&gt;
== FAQs ==&lt;br /&gt;
&lt;br /&gt;
=== URL内の数字はなんですか？ ===&lt;br /&gt;
古いURLと新しいURLの数字を比較してみましょう古いURLでは&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=1:welcome-to-joomla&amp;amp;catid=1:latest-news&amp;amp;Itemid=50&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
新しいURLでは:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These numbers are the parameters that are needed by Joomla! to get the internal URL and show the page you want to see. (In this case, the first numeral one is the ID of the category, the second numeral one is the ID of the article.)&lt;br /&gt;
&lt;br /&gt;
=== URLには &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt; がありませんこのファイルは削除していいですか？ ===&lt;br /&gt;
削除してはいけませんURLには&amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt;が含まれていませんが内部的にmod_rewriteが表示しないで元のパスへリダイレクトしているためです。&lt;br /&gt;
&lt;br /&gt;
=== [[S:MyLanguage/Alias|エイリアス]]とは？またどの様に作成されますか？ ===&lt;br /&gt;
エイリアスは記事、カテゴリ、セクション、メニューアイテム等のタイトルフィールドの下に表示されています。Joomla!は自動的にエイリアスを作成でき自動作成されたエイリアスはタイトルから始まりすべて小文字に変換されます。スペースやURLで使用できない文字はダッシュに変換されます。&lt;br /&gt;
&lt;br /&gt;
=== I want to specify my own value for Alias. ===&lt;br /&gt;
If you do not like the alias provided by Joomla!, you can enter a value of your choosing into that field. Many believe using good keywords in your URL helps search engine optimization. You can do so by including those keywords in your title, and allowing Joomla! to create the alias, or by creating the alias yourself.&lt;br /&gt;
&lt;br /&gt;
=== How is Alias used in a URL? ===&lt;br /&gt;
For a menu item, Joomla! uses the alias as the URL plug. Assume that you use the first two SEF URL options and you create a menu item called Products. Your URL would be example.com/products.&lt;br /&gt;
&lt;br /&gt;
Joomla! also uses the primary key values of data within the URL to help the router navigate to the correct page. Continuing with the previous example, if your products menu item was for an Article­/Category Blog, the link for the Article Title and/or Read More link would have three parts:&lt;br /&gt;
&lt;br /&gt;
* The menu item URL - example.com/products;&lt;br /&gt;
&lt;br /&gt;
* Plus, the primary key for the Category and the Category alias - 32-fruit;&lt;br /&gt;
&lt;br /&gt;
* Plus, the primary key for the Article and the Article alias - 1-apple;&lt;br /&gt;
&lt;br /&gt;
The complete URL is: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/products/32-fruit/1-apple&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How can I get rid of the numbers in the SEF URLs? ===&lt;br /&gt;
The numbers in the SEF URL are needed by Joomla!&#039;s router to know how to direct site traffic. Once the router logic stabilizes, simple third party system plugins can be developed to augment the router capabilities by allowing more choice. At that time, numbers will likely be removed from the URL.&lt;br /&gt;
&lt;br /&gt;
== Route Formats and the Routing Mechanism ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes Joomla!&#039;s core (built-in) routing mechanism. Routing extensions may change the way routes are created on your system.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Route Formats ===&lt;br /&gt;
&lt;br /&gt;
To describe the Joomla! routing mechanism in more detail, we first need to pin down what we refer to as a &#039;&#039;&#039;route&#039;&#039;&#039;. Suppose that Joomla! has been installed in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/sites/first/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The installation path is generally referred to as the &#039;&#039;&#039;base URL&#039;&#039;&#039;. A possible example URL is &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/sites/first/products/32-fruit/1-apple&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The first part of this URL is the aforementioned base URL, and neither Joomla! nor any component router can create URLs with a different first part. The second part, &amp;lt;code&amp;gt;products/32-fruit/1-apple&amp;lt;/code&amp;gt;, is a &#039;&#039;&#039;route&#039;&#039;&#039;, consisting of three &#039;&#039;&#039;segment&#039;&#039;&#039;s.&lt;br /&gt;
&lt;br /&gt;
The first segment of a route is, for regular URLs, the alias of a menu item. The SEF URL is said to be &#039;&#039;&#039;routed through&#039;&#039;&#039; that menu item. The other segments are determined entirely by the router of the component that provides the type of the menu item. The &#039;&#039;Category - Blog&#039;&#039; menu item type, for example, is provided by the [[Content]] component, and therefore that component&#039;s router is responsible for building and parsing the remaining segments.&lt;br /&gt;
&lt;br /&gt;
It is also possible (for extensions) to ask the system to create a route without supplying a menu item to route through. In that case, the system will usually decide to create a special route that has the word &amp;lt;code&amp;gt;component&amp;lt;/code&amp;gt; as the first segment. These routes are created using a fixed format: the name of the component (without the leading &amp;lt;code&amp;gt;com_&amp;lt;/code&amp;gt;) is selected as the second segment and any parameters as the other segments.&lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
&lt;br /&gt;
It is important to note creating a menu item is the &#039;&#039;only&#039;&#039; way for a Joomla! user to define a route that leads to a specific component. It is, however, possible to create a route without showing it on the site (in a menu). An often-applied method is to create a menu item in a menu that isn&#039;t displayed anywhere. Such a menu is usually called a [[Menu|hidden menu]].&lt;br /&gt;
&lt;br /&gt;
The previous paragraph implies that it is not possible to make one component responsible for handling all routes. For example, it is not possible to specify that the URL &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/thealias&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; should display the Content item with the alias &amp;lt;code&amp;gt;thealias&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;thealias&amp;lt;/code&amp;gt; could be any word. If this needs to be done for a small number of articles, menu items can be created manually for these. Else a routing extension is necessary.&lt;br /&gt;
&lt;br /&gt;
This routing mechanism is therefore not as flexible as users sometimes require. On the other hand, it has one large advantage: it reduces the chance of ambiguous routes (routes that could lead to two different pages). Since the first segment of a route is always a menu item alias, the system immediately knows which component&#039;s router must be used to parse it.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
=== Handling Routes ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes the routing implementation. If you are a component developer, see [[Supporting SEF URLs in your component]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Joomla routes are created and resolved by [[JRouter|the JRouter class]]. This class looks in the component root of the currently active component (specified in the &amp;lt;code&amp;gt;option&amp;lt;/code&amp;gt; parameter in the query string) and includes the &amp;lt;code&amp;gt;router.php&amp;lt;/code&amp;gt; file in that component&#039;s root directory. It then calls one of two functions: one for creating the SEF URL and one for interpreting the SEF URL.&lt;br /&gt;
&lt;br /&gt;
The JRouter class is overridden by the Joomla CMS in &amp;lt;code&amp;gt;/includes/router.php&amp;lt;/code&amp;gt;. In this file the build and parse functions are overridden to properly build and parse the URLs for the Joomla CMS.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;router.php&amp;lt;/code&amp;gt; file in each component (for example, &amp;lt;code&amp;gt;/components/com_content/router.php&amp;lt;/code&amp;gt;) should contain the following two functions:&lt;br /&gt;
* ContentBuildRoute - this builds the SEF URL&lt;br /&gt;
** Parameters&lt;br /&gt;
*** $query - this is a named array containing the querystring variables&lt;br /&gt;
** Returns: an array of segments where each segment is separated by a &#039;/&#039; when later combined to create the actual URL (the items in the array should not contain &#039;/&#039; characters)&lt;br /&gt;
* ContentParseRoute - this interprets an SEF URL&lt;br /&gt;
** Parameters&lt;br /&gt;
*** $segments - this is an array that contains the segments of the URL requested.&lt;br /&gt;
** Returns: a name =&amp;gt; value array of the querystring variables that the link maps to&lt;br /&gt;
&lt;br /&gt;
=== The SEF Plugin ===&lt;br /&gt;
The Joomla &#039;&#039;System - SEF&#039;&#039; plugin inherits &amp;lt;code&amp;gt;JPlugin&amp;lt;/code&amp;gt; and implements the &amp;lt;code&amp;gt;onAfterRender()&amp;lt;/code&amp;gt; function. In this function the body of the response that will be sent to the browser is retrieved using &amp;lt;code&amp;gt;JResponse::getBody()&amp;lt;/code&amp;gt;. The body of the response is then searched for links containing &amp;lt;code&amp;gt;/index.php...&amp;lt;/code&amp;gt; and replaces them with a correct SEF URL by calling &amp;lt;code&amp;gt;JRoute::_(&#039;&#039;url&#039;&#039;)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
JRoute builds SEF URLs by instantiating a &amp;lt;code&amp;gt;JRouter&amp;lt;/code&amp;gt; object and requesting that it build the correct link from the passed in URL.&lt;br /&gt;
&lt;br /&gt;
=== Handling SEF URLs ===&lt;br /&gt;
By default the SEF URLs are handled by the &amp;lt;code&amp;gt;JRouterSite&amp;lt;/code&amp;gt; object (from &amp;lt;code&amp;gt;/includes/router.php&amp;lt;/code&amp;gt;) and is called by a call to &amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; in index.php. This call is made on the &amp;lt;code&amp;gt;$app&amp;lt;/code&amp;gt; variable which is actually an instance of &amp;lt;code&amp;gt;JSite&amp;lt;/code&amp;gt; (from &amp;lt;code&amp;gt;/includes/application.php&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; has a non-destructive result on the &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; array. That is, &amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; sets variables in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; by calling &amp;lt;code&amp;gt;JRequest::set()&amp;lt;/code&amp;gt; with the overwrite flag set to false. Thus if a variable name is returned from &amp;lt;code&amp;gt;JRouter::route()&amp;lt;/code&amp;gt; that is already in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt;, it will not put that value into &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt;. This allows for custom routing.&lt;br /&gt;
&lt;br /&gt;
=== Custom Routing ===&lt;br /&gt;
Joomla allows you to create your own routing mechanism. In order to create this mechanism you must have a plugin that overrides the &amp;lt;code&amp;gt;JPlugin::onAfterInitialise()&amp;lt;/code&amp;gt; function. This function then parses the URL and creates the needed variables in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; before the standard Joomla routing is done.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See [[Creating a System Plugin to augment JRouter]] for an example.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Search Engine Friendly URLs| ]]&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Search_Engine_Friendly_URLs/13/ja&amp;diff=114294</id>
		<title>Translations:Search Engine Friendly URLs/13/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Search_Engine_Friendly_URLs/13/ja&amp;diff=114294"/>
		<updated>2014-03-08T10:02:00Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;=== エイリアスとは？またどの様に作成されますか？ === エイリアスは記事、カテゴリ、セクション、メニューア...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== [[S:MyLanguage/Alias|エイリアス]]とは？またどの様に作成されますか？ ===&lt;br /&gt;
エイリアスは記事、カテゴリ、セクション、メニューアイテム等のタイトルフィールドの下に表示されています。Joomla!は自動的にエイリアスを作成でき自動作成されたエイリアスはタイトルから始まりすべて小文字に変換されます。スペースやURLで使用できない文字はダッシュに変換されます。&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Search_Engine_Friendly_URLs/ja&amp;diff=114293</id>
		<title>Search Engine Friendly URLs/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Search_Engine_Friendly_URLs/ja&amp;diff=114293"/>
		<updated>2014-03-08T09:50:05Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;=== URLには &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt; がありませんこのファイルは削除していいですか？ === 削除してはいけませんURLには&amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt;が...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;検索エンジンフレンドリーURL&#039;&#039;&#039;,&#039;&#039;&#039;人が読みとれる&#039;&#039;&#039;や[[wikipedia:Clean_URL|clean URLs]]は特定ページへのパスを人と検索エンジン両方に理解できるURLです。Joomla! バージョン1.5以降ではSEF URLを含む全フォーマットでもURLを作成し解析できます。Joomla!の場合、WebサーバのURL書換えに依存しない為、Joomla!はmod_rewriteモジュールを使用しているApache以外のサーバでも作動します。SEF URLは特定の固有パターンがありますがユーザはURL毎に短い説明(エイリアス)を含める事ができます。&lt;br /&gt;
&lt;br /&gt;
内部的にSEF URL(ドメイン名以降)のパスは&#039;&#039;&#039;ルート&#039;&#039;&#039;と呼ばれています。SEF URLの作成と解析処理は&#039;&#039;&#039;ルーティング&#039;&#039;&#039;と呼ばれ関連するコードは&#039;&#039;&#039;ルータ&#039;&#039;&#039;と呼ばれています。&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
ルーティングのよい例がサンプルデータ内の記事&amp;quot;Joomla!へようこそ&amp;quot;です。&lt;br /&gt;
&lt;br /&gt;
* SEF URLが無効のURL &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=1:welcome-to-joomla&amp;amp;catid=1:latest-news&amp;amp;Itemid=50&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* SEF URLが有効でmod_rewriteは無効 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php/the-­news/1-­latest­-news/1­-welcome­-to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* SEF URL,mod_rewrite両方有効 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
検索エンジンフレンドリーURLは&#039;&#039;&#039;グローバル設定&#039;&#039;&#039;内の&#039;&#039;&#039;検索エンジンフレンドリーURL&#039;&#039;&#039;で設定できますこのオプションはJoomla!1.6からデフォルトで有効になっています。詳細は[[S:MyLanguage/Enabling Search Engine Friendly (SEF) URLs|検索エンジンフレンドリーURLを有効化]]を参照して下さい。&lt;br /&gt;
&lt;br /&gt;
== FAQs ==&lt;br /&gt;
&lt;br /&gt;
=== URL内の数字はなんですか？ ===&lt;br /&gt;
古いURLと新しいURLの数字を比較してみましょう古いURLでは&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=1:welcome-to-joomla&amp;amp;catid=1:latest-news&amp;amp;Itemid=50&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
新しいURLでは:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These numbers are the parameters that are needed by Joomla! to get the internal URL and show the page you want to see. (In this case, the first numeral one is the ID of the category, the second numeral one is the ID of the article.)&lt;br /&gt;
&lt;br /&gt;
=== URLには &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt; がありませんこのファイルは削除していいですか？ ===&lt;br /&gt;
削除してはいけませんURLには&amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt;が含まれていませんが内部的にmod_rewriteが表示しないで元のパスへリダイレクトしているためです。&lt;br /&gt;
&lt;br /&gt;
=== What is the [[Alias]] value? And how does it get created? ===&lt;br /&gt;
Alias is listed beneath the Title field in Articles, Categories, Sections and Menu Items. Joomla! can automatically create the alias for you. An automatic alias begins with the title. All upper case letters are changed to lower case. Spaces and special characters not allowed in a URL; they are changed to dashes.&lt;br /&gt;
&lt;br /&gt;
=== I want to specify my own value for Alias. ===&lt;br /&gt;
If you do not like the alias provided by Joomla!, you can enter a value of your choosing into that field. Many believe using good keywords in your URL helps search engine optimization. You can do so by including those keywords in your title, and allowing Joomla! to create the alias, or by creating the alias yourself.&lt;br /&gt;
&lt;br /&gt;
=== How is Alias used in a URL? ===&lt;br /&gt;
For a menu item, Joomla! uses the alias as the URL plug. Assume that you use the first two SEF URL options and you create a menu item called Products. Your URL would be example.com/products.&lt;br /&gt;
&lt;br /&gt;
Joomla! also uses the primary key values of data within the URL to help the router navigate to the correct page. Continuing with the previous example, if your products menu item was for an Article­/Category Blog, the link for the Article Title and/or Read More link would have three parts:&lt;br /&gt;
&lt;br /&gt;
* The menu item URL - example.com/products;&lt;br /&gt;
&lt;br /&gt;
* Plus, the primary key for the Category and the Category alias - 32-fruit;&lt;br /&gt;
&lt;br /&gt;
* Plus, the primary key for the Article and the Article alias - 1-apple;&lt;br /&gt;
&lt;br /&gt;
The complete URL is: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/products/32-fruit/1-apple&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How can I get rid of the numbers in the SEF URLs? ===&lt;br /&gt;
The numbers in the SEF URL are needed by Joomla!&#039;s router to know how to direct site traffic. Once the router logic stabilizes, simple third party system plugins can be developed to augment the router capabilities by allowing more choice. At that time, numbers will likely be removed from the URL.&lt;br /&gt;
&lt;br /&gt;
== Route Formats and the Routing Mechanism ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes Joomla!&#039;s core (built-in) routing mechanism. Routing extensions may change the way routes are created on your system.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Route Formats ===&lt;br /&gt;
&lt;br /&gt;
To describe the Joomla! routing mechanism in more detail, we first need to pin down what we refer to as a &#039;&#039;&#039;route&#039;&#039;&#039;. Suppose that Joomla! has been installed in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/sites/first/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The installation path is generally referred to as the &#039;&#039;&#039;base URL&#039;&#039;&#039;. A possible example URL is &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/sites/first/products/32-fruit/1-apple&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The first part of this URL is the aforementioned base URL, and neither Joomla! nor any component router can create URLs with a different first part. The second part, &amp;lt;code&amp;gt;products/32-fruit/1-apple&amp;lt;/code&amp;gt;, is a &#039;&#039;&#039;route&#039;&#039;&#039;, consisting of three &#039;&#039;&#039;segment&#039;&#039;&#039;s.&lt;br /&gt;
&lt;br /&gt;
The first segment of a route is, for regular URLs, the alias of a menu item. The SEF URL is said to be &#039;&#039;&#039;routed through&#039;&#039;&#039; that menu item. The other segments are determined entirely by the router of the component that provides the type of the menu item. The &#039;&#039;Category - Blog&#039;&#039; menu item type, for example, is provided by the [[Content]] component, and therefore that component&#039;s router is responsible for building and parsing the remaining segments.&lt;br /&gt;
&lt;br /&gt;
It is also possible (for extensions) to ask the system to create a route without supplying a menu item to route through. In that case, the system will usually decide to create a special route that has the word &amp;lt;code&amp;gt;component&amp;lt;/code&amp;gt; as the first segment. These routes are created using a fixed format: the name of the component (without the leading &amp;lt;code&amp;gt;com_&amp;lt;/code&amp;gt;) is selected as the second segment and any parameters as the other segments.&lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
&lt;br /&gt;
It is important to note creating a menu item is the &#039;&#039;only&#039;&#039; way for a Joomla! user to define a route that leads to a specific component. It is, however, possible to create a route without showing it on the site (in a menu). An often-applied method is to create a menu item in a menu that isn&#039;t displayed anywhere. Such a menu is usually called a [[Menu|hidden menu]].&lt;br /&gt;
&lt;br /&gt;
The previous paragraph implies that it is not possible to make one component responsible for handling all routes. For example, it is not possible to specify that the URL &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/thealias&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; should display the Content item with the alias &amp;lt;code&amp;gt;thealias&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;thealias&amp;lt;/code&amp;gt; could be any word. If this needs to be done for a small number of articles, menu items can be created manually for these. Else a routing extension is necessary.&lt;br /&gt;
&lt;br /&gt;
This routing mechanism is therefore not as flexible as users sometimes require. On the other hand, it has one large advantage: it reduces the chance of ambiguous routes (routes that could lead to two different pages). Since the first segment of a route is always a menu item alias, the system immediately knows which component&#039;s router must be used to parse it.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
=== Handling Routes ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes the routing implementation. If you are a component developer, see [[Supporting SEF URLs in your component]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Joomla routes are created and resolved by [[JRouter|the JRouter class]]. This class looks in the component root of the currently active component (specified in the &amp;lt;code&amp;gt;option&amp;lt;/code&amp;gt; parameter in the query string) and includes the &amp;lt;code&amp;gt;router.php&amp;lt;/code&amp;gt; file in that component&#039;s root directory. It then calls one of two functions: one for creating the SEF URL and one for interpreting the SEF URL.&lt;br /&gt;
&lt;br /&gt;
The JRouter class is overridden by the Joomla CMS in &amp;lt;code&amp;gt;/includes/router.php&amp;lt;/code&amp;gt;. In this file the build and parse functions are overridden to properly build and parse the URLs for the Joomla CMS.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;router.php&amp;lt;/code&amp;gt; file in each component (for example, &amp;lt;code&amp;gt;/components/com_content/router.php&amp;lt;/code&amp;gt;) should contain the following two functions:&lt;br /&gt;
* ContentBuildRoute - this builds the SEF URL&lt;br /&gt;
** Parameters&lt;br /&gt;
*** $query - this is a named array containing the querystring variables&lt;br /&gt;
** Returns: an array of segments where each segment is separated by a &#039;/&#039; when later combined to create the actual URL (the items in the array should not contain &#039;/&#039; characters)&lt;br /&gt;
* ContentParseRoute - this interprets an SEF URL&lt;br /&gt;
** Parameters&lt;br /&gt;
*** $segments - this is an array that contains the segments of the URL requested.&lt;br /&gt;
** Returns: a name =&amp;gt; value array of the querystring variables that the link maps to&lt;br /&gt;
&lt;br /&gt;
=== The SEF Plugin ===&lt;br /&gt;
The Joomla &#039;&#039;System - SEF&#039;&#039; plugin inherits &amp;lt;code&amp;gt;JPlugin&amp;lt;/code&amp;gt; and implements the &amp;lt;code&amp;gt;onAfterRender()&amp;lt;/code&amp;gt; function. In this function the body of the response that will be sent to the browser is retrieved using &amp;lt;code&amp;gt;JResponse::getBody()&amp;lt;/code&amp;gt;. The body of the response is then searched for links containing &amp;lt;code&amp;gt;/index.php...&amp;lt;/code&amp;gt; and replaces them with a correct SEF URL by calling &amp;lt;code&amp;gt;JRoute::_(&#039;&#039;url&#039;&#039;)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
JRoute builds SEF URLs by instantiating a &amp;lt;code&amp;gt;JRouter&amp;lt;/code&amp;gt; object and requesting that it build the correct link from the passed in URL.&lt;br /&gt;
&lt;br /&gt;
=== Handling SEF URLs ===&lt;br /&gt;
By default the SEF URLs are handled by the &amp;lt;code&amp;gt;JRouterSite&amp;lt;/code&amp;gt; object (from &amp;lt;code&amp;gt;/includes/router.php&amp;lt;/code&amp;gt;) and is called by a call to &amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; in index.php. This call is made on the &amp;lt;code&amp;gt;$app&amp;lt;/code&amp;gt; variable which is actually an instance of &amp;lt;code&amp;gt;JSite&amp;lt;/code&amp;gt; (from &amp;lt;code&amp;gt;/includes/application.php&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; has a non-destructive result on the &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; array. That is, &amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; sets variables in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; by calling &amp;lt;code&amp;gt;JRequest::set()&amp;lt;/code&amp;gt; with the overwrite flag set to false. Thus if a variable name is returned from &amp;lt;code&amp;gt;JRouter::route()&amp;lt;/code&amp;gt; that is already in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt;, it will not put that value into &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt;. This allows for custom routing.&lt;br /&gt;
&lt;br /&gt;
=== Custom Routing ===&lt;br /&gt;
Joomla allows you to create your own routing mechanism. In order to create this mechanism you must have a plugin that overrides the &amp;lt;code&amp;gt;JPlugin::onAfterInitialise()&amp;lt;/code&amp;gt; function. This function then parses the URL and creates the needed variables in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; before the standard Joomla routing is done.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See [[Creating a System Plugin to augment JRouter]] for an example.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Search Engine Friendly URLs| ]]&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Search_Engine_Friendly_URLs/12/ja&amp;diff=114292</id>
		<title>Translations:Search Engine Friendly URLs/12/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Search_Engine_Friendly_URLs/12/ja&amp;diff=114292"/>
		<updated>2014-03-08T09:50:04Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;=== URLには &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt; がありませんこのファイルは削除していいですか？ === 削除してはいけませんURLには&amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt;が...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== URLには &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt; がありませんこのファイルは削除していいですか？ ===&lt;br /&gt;
削除してはいけませんURLには&amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt;が含まれていませんが内部的にmod_rewriteが表示しないで元のパスへリダイレクトしているためです。&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Search_Engine_Friendly_URLs/11/ja&amp;diff=114291</id>
		<title>Translations:Search Engine Friendly URLs/11/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Search_Engine_Friendly_URLs/11/ja&amp;diff=114291"/>
		<updated>2014-03-08T09:46:43Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;これらの数字は、Joomla!が必要とするパラメータでURLから取得し表示したいページを探します。 (この場合、最初の数字1はカテゴリ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;これらの数字は、Joomla!が必要とするパラメータでURLから取得し表示したいページを探します。 (この場合、最初の数字1はカテゴリーのID、二つ目の数字1は、記事のIDです）&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Search_Engine_Friendly_URLs/10/ja&amp;diff=114290</id>
		<title>Translations:Search Engine Friendly URLs/10/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Search_Engine_Friendly_URLs/10/ja&amp;diff=114290"/>
		<updated>2014-03-08T09:43:55Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Search_Engine_Friendly_URLs/ja&amp;diff=114289</id>
		<title>Search Engine Friendly URLs/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Search_Engine_Friendly_URLs/ja&amp;diff=114289"/>
		<updated>2014-03-08T09:43:54Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;新しいURLでは:&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;検索エンジンフレンドリーURL&#039;&#039;&#039;,&#039;&#039;&#039;人が読みとれる&#039;&#039;&#039;や[[wikipedia:Clean_URL|clean URLs]]は特定ページへのパスを人と検索エンジン両方に理解できるURLです。Joomla! バージョン1.5以降ではSEF URLを含む全フォーマットでもURLを作成し解析できます。Joomla!の場合、WebサーバのURL書換えに依存しない為、Joomla!はmod_rewriteモジュールを使用しているApache以外のサーバでも作動します。SEF URLは特定の固有パターンがありますがユーザはURL毎に短い説明(エイリアス)を含める事ができます。&lt;br /&gt;
&lt;br /&gt;
内部的にSEF URL(ドメイン名以降)のパスは&#039;&#039;&#039;ルート&#039;&#039;&#039;と呼ばれています。SEF URLの作成と解析処理は&#039;&#039;&#039;ルーティング&#039;&#039;&#039;と呼ばれ関連するコードは&#039;&#039;&#039;ルータ&#039;&#039;&#039;と呼ばれています。&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
ルーティングのよい例がサンプルデータ内の記事&amp;quot;Joomla!へようこそ&amp;quot;です。&lt;br /&gt;
&lt;br /&gt;
* SEF URLが無効のURL &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=1:welcome-to-joomla&amp;amp;catid=1:latest-news&amp;amp;Itemid=50&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* SEF URLが有効でmod_rewriteは無効 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php/the-­news/1-­latest­-news/1­-welcome­-to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* SEF URL,mod_rewrite両方有効 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
検索エンジンフレンドリーURLは&#039;&#039;&#039;グローバル設定&#039;&#039;&#039;内の&#039;&#039;&#039;検索エンジンフレンドリーURL&#039;&#039;&#039;で設定できますこのオプションはJoomla!1.6からデフォルトで有効になっています。詳細は[[S:MyLanguage/Enabling Search Engine Friendly (SEF) URLs|検索エンジンフレンドリーURLを有効化]]を参照して下さい。&lt;br /&gt;
&lt;br /&gt;
== FAQs ==&lt;br /&gt;
&lt;br /&gt;
=== URL内の数字はなんですか？ ===&lt;br /&gt;
古いURLと新しいURLの数字を比較してみましょう古いURLでは&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=1:welcome-to-joomla&amp;amp;catid=1:latest-news&amp;amp;Itemid=50&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
新しいURLでは:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These numbers are the parameters that are needed by Joomla! to get the internal URL and show the page you want to see. (In this case, the first numeral one is the ID of the category, the second numeral one is the ID of the article.)&lt;br /&gt;
&lt;br /&gt;
=== There is no &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt; in the URL anymore. Can I delete the file now? ===&lt;br /&gt;
No! The URL may doesn&#039;t contain the &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt; anymore, but internally the mod_rewrite will only redirect to the original path without showing it to you.&lt;br /&gt;
&lt;br /&gt;
=== What is the [[Alias]] value? And how does it get created? ===&lt;br /&gt;
Alias is listed beneath the Title field in Articles, Categories, Sections and Menu Items. Joomla! can automatically create the alias for you. An automatic alias begins with the title. All upper case letters are changed to lower case. Spaces and special characters not allowed in a URL; they are changed to dashes.&lt;br /&gt;
&lt;br /&gt;
=== I want to specify my own value for Alias. ===&lt;br /&gt;
If you do not like the alias provided by Joomla!, you can enter a value of your choosing into that field. Many believe using good keywords in your URL helps search engine optimization. You can do so by including those keywords in your title, and allowing Joomla! to create the alias, or by creating the alias yourself.&lt;br /&gt;
&lt;br /&gt;
=== How is Alias used in a URL? ===&lt;br /&gt;
For a menu item, Joomla! uses the alias as the URL plug. Assume that you use the first two SEF URL options and you create a menu item called Products. Your URL would be example.com/products.&lt;br /&gt;
&lt;br /&gt;
Joomla! also uses the primary key values of data within the URL to help the router navigate to the correct page. Continuing with the previous example, if your products menu item was for an Article­/Category Blog, the link for the Article Title and/or Read More link would have three parts:&lt;br /&gt;
&lt;br /&gt;
* The menu item URL - example.com/products;&lt;br /&gt;
&lt;br /&gt;
* Plus, the primary key for the Category and the Category alias - 32-fruit;&lt;br /&gt;
&lt;br /&gt;
* Plus, the primary key for the Article and the Article alias - 1-apple;&lt;br /&gt;
&lt;br /&gt;
The complete URL is: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/products/32-fruit/1-apple&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How can I get rid of the numbers in the SEF URLs? ===&lt;br /&gt;
The numbers in the SEF URL are needed by Joomla!&#039;s router to know how to direct site traffic. Once the router logic stabilizes, simple third party system plugins can be developed to augment the router capabilities by allowing more choice. At that time, numbers will likely be removed from the URL.&lt;br /&gt;
&lt;br /&gt;
== Route Formats and the Routing Mechanism ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes Joomla!&#039;s core (built-in) routing mechanism. Routing extensions may change the way routes are created on your system.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Route Formats ===&lt;br /&gt;
&lt;br /&gt;
To describe the Joomla! routing mechanism in more detail, we first need to pin down what we refer to as a &#039;&#039;&#039;route&#039;&#039;&#039;. Suppose that Joomla! has been installed in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/sites/first/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The installation path is generally referred to as the &#039;&#039;&#039;base URL&#039;&#039;&#039;. A possible example URL is &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/sites/first/products/32-fruit/1-apple&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The first part of this URL is the aforementioned base URL, and neither Joomla! nor any component router can create URLs with a different first part. The second part, &amp;lt;code&amp;gt;products/32-fruit/1-apple&amp;lt;/code&amp;gt;, is a &#039;&#039;&#039;route&#039;&#039;&#039;, consisting of three &#039;&#039;&#039;segment&#039;&#039;&#039;s.&lt;br /&gt;
&lt;br /&gt;
The first segment of a route is, for regular URLs, the alias of a menu item. The SEF URL is said to be &#039;&#039;&#039;routed through&#039;&#039;&#039; that menu item. The other segments are determined entirely by the router of the component that provides the type of the menu item. The &#039;&#039;Category - Blog&#039;&#039; menu item type, for example, is provided by the [[Content]] component, and therefore that component&#039;s router is responsible for building and parsing the remaining segments.&lt;br /&gt;
&lt;br /&gt;
It is also possible (for extensions) to ask the system to create a route without supplying a menu item to route through. In that case, the system will usually decide to create a special route that has the word &amp;lt;code&amp;gt;component&amp;lt;/code&amp;gt; as the first segment. These routes are created using a fixed format: the name of the component (without the leading &amp;lt;code&amp;gt;com_&amp;lt;/code&amp;gt;) is selected as the second segment and any parameters as the other segments.&lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
&lt;br /&gt;
It is important to note creating a menu item is the &#039;&#039;only&#039;&#039; way for a Joomla! user to define a route that leads to a specific component. It is, however, possible to create a route without showing it on the site (in a menu). An often-applied method is to create a menu item in a menu that isn&#039;t displayed anywhere. Such a menu is usually called a [[Menu|hidden menu]].&lt;br /&gt;
&lt;br /&gt;
The previous paragraph implies that it is not possible to make one component responsible for handling all routes. For example, it is not possible to specify that the URL &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com/thealias&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; should display the Content item with the alias &amp;lt;code&amp;gt;thealias&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;thealias&amp;lt;/code&amp;gt; could be any word. If this needs to be done for a small number of articles, menu items can be created manually for these. Else a routing extension is necessary.&lt;br /&gt;
&lt;br /&gt;
This routing mechanism is therefore not as flexible as users sometimes require. On the other hand, it has one large advantage: it reduces the chance of ambiguous routes (routes that could lead to two different pages). Since the first segment of a route is always a menu item alias, the system immediately knows which component&#039;s router must be used to parse it.&lt;br /&gt;
&lt;br /&gt;
== Implementation Details ==&lt;br /&gt;
=== Handling Routes ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes the routing implementation. If you are a component developer, see [[Supporting SEF URLs in your component]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Joomla routes are created and resolved by [[JRouter|the JRouter class]]. This class looks in the component root of the currently active component (specified in the &amp;lt;code&amp;gt;option&amp;lt;/code&amp;gt; parameter in the query string) and includes the &amp;lt;code&amp;gt;router.php&amp;lt;/code&amp;gt; file in that component&#039;s root directory. It then calls one of two functions: one for creating the SEF URL and one for interpreting the SEF URL.&lt;br /&gt;
&lt;br /&gt;
The JRouter class is overridden by the Joomla CMS in &amp;lt;code&amp;gt;/includes/router.php&amp;lt;/code&amp;gt;. In this file the build and parse functions are overridden to properly build and parse the URLs for the Joomla CMS.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;router.php&amp;lt;/code&amp;gt; file in each component (for example, &amp;lt;code&amp;gt;/components/com_content/router.php&amp;lt;/code&amp;gt;) should contain the following two functions:&lt;br /&gt;
* ContentBuildRoute - this builds the SEF URL&lt;br /&gt;
** Parameters&lt;br /&gt;
*** $query - this is a named array containing the querystring variables&lt;br /&gt;
** Returns: an array of segments where each segment is separated by a &#039;/&#039; when later combined to create the actual URL (the items in the array should not contain &#039;/&#039; characters)&lt;br /&gt;
* ContentParseRoute - this interprets an SEF URL&lt;br /&gt;
** Parameters&lt;br /&gt;
*** $segments - this is an array that contains the segments of the URL requested.&lt;br /&gt;
** Returns: a name =&amp;gt; value array of the querystring variables that the link maps to&lt;br /&gt;
&lt;br /&gt;
=== The SEF Plugin ===&lt;br /&gt;
The Joomla &#039;&#039;System - SEF&#039;&#039; plugin inherits &amp;lt;code&amp;gt;JPlugin&amp;lt;/code&amp;gt; and implements the &amp;lt;code&amp;gt;onAfterRender()&amp;lt;/code&amp;gt; function. In this function the body of the response that will be sent to the browser is retrieved using &amp;lt;code&amp;gt;JResponse::getBody()&amp;lt;/code&amp;gt;. The body of the response is then searched for links containing &amp;lt;code&amp;gt;/index.php...&amp;lt;/code&amp;gt; and replaces them with a correct SEF URL by calling &amp;lt;code&amp;gt;JRoute::_(&#039;&#039;url&#039;&#039;)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
JRoute builds SEF URLs by instantiating a &amp;lt;code&amp;gt;JRouter&amp;lt;/code&amp;gt; object and requesting that it build the correct link from the passed in URL.&lt;br /&gt;
&lt;br /&gt;
=== Handling SEF URLs ===&lt;br /&gt;
By default the SEF URLs are handled by the &amp;lt;code&amp;gt;JRouterSite&amp;lt;/code&amp;gt; object (from &amp;lt;code&amp;gt;/includes/router.php&amp;lt;/code&amp;gt;) and is called by a call to &amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; in index.php. This call is made on the &amp;lt;code&amp;gt;$app&amp;lt;/code&amp;gt; variable which is actually an instance of &amp;lt;code&amp;gt;JSite&amp;lt;/code&amp;gt; (from &amp;lt;code&amp;gt;/includes/application.php&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; has a non-destructive result on the &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; array. That is, &amp;lt;code&amp;gt;JApplication::route()&amp;lt;/code&amp;gt; sets variables in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; by calling &amp;lt;code&amp;gt;JRequest::set()&amp;lt;/code&amp;gt; with the overwrite flag set to false. Thus if a variable name is returned from &amp;lt;code&amp;gt;JRouter::route()&amp;lt;/code&amp;gt; that is already in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt;, it will not put that value into &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt;. This allows for custom routing.&lt;br /&gt;
&lt;br /&gt;
=== Custom Routing ===&lt;br /&gt;
Joomla allows you to create your own routing mechanism. In order to create this mechanism you must have a plugin that overrides the &amp;lt;code&amp;gt;JPlugin::onAfterInitialise()&amp;lt;/code&amp;gt; function. This function then parses the URL and creates the needed variables in &amp;lt;code&amp;gt;$_GET&amp;lt;/code&amp;gt; before the standard Joomla routing is done.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See [[Creating a System Plugin to augment JRouter]] for an example.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Search Engine Friendly URLs| ]]&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Search_Engine_Friendly_URLs/9/ja&amp;diff=114288</id>
		<title>Translations:Search Engine Friendly URLs/9/ja</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Search_Engine_Friendly_URLs/9/ja&amp;diff=114288"/>
		<updated>2014-03-08T09:43:54Z</updated>

		<summary type="html">&lt;p&gt;Nori: Created page with &amp;quot;新しいURLでは:&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;新しいURLでは:&lt;/div&gt;</summary>
		<author><name>Nori</name></author>
	</entry>
</feed>