タイプ | |
有料/無料 | 有料 |
ライセンス | GPL |
執筆時のバージョン | 1.3.8 |
ユーザ登録の要否 | 不要 |
- ここに掲載している記事は執筆時点のものです。内容が古くなっている事もありますのでご注意下さい。
- ここで紹介しているエクステンションの利用を推奨するものではありません。ご利用は自己責任でお願いします。
- ご自分が利用しているエクステンションの最新情報は常に確認しましょう。様々なエクステンションで日々脆弱性が見つかっており、あなたのサイトがクラックの被害に遭わないとも限りません。脆弱性情報はこちら。
- Joomla!のURL(http://www.example.net/content/view/25/75) をhttp://www.example.net/content.htmlのような形式にリライトできる。
- 主要なコンポーネントのリライトにも対応(CommunityBuider,Docmanなど。詳しくは作者ページ参照)
- 独自の404ページを作成できる。
- セキュリティ機能搭載。
- その他SEO機能。各ページに独自のtitle,Keywords,Descriptionなどが設定できたり、見出しをh1へ変換できる。
- 日本語環境で使用するには難あり。次項参照。
日本語環境での問題点
始めに日本語環境で使用する場合の問題点について列挙しておく。私が試した限りsh404SEFを導入するのが難しい状況もあるからだ。 以下は私がsh404SEFを導入するために試行錯誤した結果だが、もしかしてこれらの問題を回避できる方法があるかもしれない。もし知っている方は教えて頂けるとうれしい。 また新しいバージョンで解決されるかもしれないので、参考程度にして欲しい。
sh404SEFは主にコンテンツのタイトルから自動的にURLを生成する。日本語環境の場合、当然コンテンツのタイトルは日本語になっていると思う。 つまり問題は、URLに日本語が含まれてしまうため正常にアクセスできなくなってしまう事だ。
使用しているメニュータイプによってはこれを回避する方法もある。「リンク - コンテンツアイテム(1.5の場合、スタンダード記事レイアウト)を使用している場合、コンテンツの別名(エイリアス)を使用して回避できる。例えば記事のタイトルには「Joomlaへようこそ」と入力し、別名に「welcome to joomla」のように入力する。そしてsh404SEFの設定で別名からURLを生成するように設定すればよい(これがデフォルトの動作)。しかしこのままだとカテゴリ名やセクション名がURL内に表示されてしまうため、sh404SEFの設定でカテゴリ名(またはセクション名)を表示しないように設定する。これで正常にアクセスできるURLが生成される。
問題は「Blog - コンテンツカテゴリー(1.5の場合Blogカテゴリレイアウト)」などの複数の記事を一覧表示するようなメニュータイプだ。これらの場合、 sh404SEFの設定でカテゴリ名やセクション名を表示しないよう設定しても日本語がURLの中に含まれてしまう。カテゴリやセクションにも別名を付与することで回避できるが、これを行うとパンくずリストが別名で表示されてしまう問題がある。
また1.5のセクション、カテゴリでは別名が「エイリアス」と表現されているが、sh404SEFではエイリアスではなくタイトルを使用してURL を生成するらしく、そうなるとセクション名やカテゴリ名に日本語が使えなくなる。
問題はまだある。いくつかのコンポーネントに対応していると謳っているが、日本語の場合難しいかもしれない。例えば当サイトでは「Docman」というダウンローダーコンポーネントを使用している。しかしDocmanのドキュメントには別名が設定できない。 つまりURLを生成するためにDocmanのドキュメント名に日本語が使えなくなる。もちろんDocmanに対してsh404SEFを無効にしてしまえばいいのだが、せっかくの機能を使えないのはもったいない。
またsh404SEFの設定でURLをエンコードすれば全て解決するが、これではsh404SEFを使用する意味が無いので却下。?
以上の理由からsh404SEFを使用するのはあきらめた。しかし一部の機能(見出しをh1タグに置き換えなど)は、モジュールを使用して実現しているからかsh404SEFを有効にしなくても使えるらしく、インストールだけはしてある(1.0.xの場合。1.5.xは不明)。場合によっては使えるかもしれないのでまずは試して欲しいと思う。
ダウンロードとインストール
上記開発元もしくはJoomla! Extention Directoryへアクセスし、使用しているJoomla!のバージョンに対応した最新のコンポーネントをダウンロードする。インストールは管理画面のインストーラメニューから行う。(参考:コンポーネントのインストール、モジュールのインストール、プラグインのインストール)
なお1.0.xの場合、コンポーネントのインストール時に「sh404SEF Custom tags module」も同時にインストールされる。
日本語化
当サイトで日本語ランゲージファイルを作成したので必要であればダウンロードする。解凍後、それぞれのバージョンに適した「japanese.php」を以下にアップロードする。
1.0.x・・・/administrator/components/com_sef/language/
1.5.x・・・/administrator/components/com_sh404sef/language/
なお以降は1.0.xで日本語化した状態で説明を行う。
3つの動作モード
sh404SEFは3つの動作モードがある。どれを選択するかによって設定方法が多少異なる。またサーバによってはどれか1つしか使用できない場合もある。
.htaccess使用モード(mod_rewrite)
URLの書き換えにApacheのmod_rewriteを使用する。もっともスマートなURLが生成される方式(例:www.example.com/content.html)。 .htaccess内の「Joomla! core SEF Section」直下の「Rewrite?」から始まる行をコメントアウトし、「3rd Party SEF Section」直下の「Rewrite?」から始まる行のコメントを外す。
########## Begin - Joomla! core SEF Section
############# Use this section if using ONLY Joomla! core SEF
## ALL (RewriteCond) lines in this section are only required if you actually
## have directories named 'content' or 'component' on your server
## If you do not have directories with these names, comment them out.
#
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR] ##optional - see notes##
#RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$ [NC]
#RewriteRule ^(content/|component/) index.php
#
########## End - Joomla! core SEF Section
########## Begin - 3rd Party SEF Section
############# Use this section if you are using a 3rd party (Non Joomla! core) SEF extension - e.g. OpenSEF, 404_SEF, 404SEFx, SEF Advance, etc
#
RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR] ##optional - see notes##
RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php
#
########## End - 3rd Party SEF Section
.htaccessなし(index.php)モード
.htaccessを使用しないモード。最も簡単で.htaccessの編集は必要ない。ただしURL内にindex.phpが含まれるようになる(例:http://www.example.com/index.php/content.html)
.htaccessなし(index.php?)モード
上記同様に.htaccessを使用しないモード。URL内にindex.php?が含まれるようになる。(例:www.example.com/index.php?/content.html)
前準備
前述したようにsh404SEFはコンテンツのタイトルを元にURLを生成する。このためコンテンツにラテン文字を使用した別名を設定しておく必要がある。場合によってはセクション名、カテゴリ名にもそれぞれ別名を設定する。
sh404SEFの有効化
「コンポーネント」→「sh404SEF」を選択し、コントロールパネルを表示させる。表示されるのは簡易的な機能のみなので、「拡張表示へ切り替えるにはここをクリックします(利用可能な全てのパラメータ)」をクリックし、拡張表示へと切り替える。
「sh404sef設定」をクリックし設定画面を表示させる。最初に表示されるメインタブの「有効」を「はい」に設定すればsh404SEFが有効になる。
また動作モードの設定もここで行う。高度タブ内に「リライトモード」があるので、必要に応じて設定を行うこと。
保存すると「URLキャッシュをクリア?」のメッセージが表示されるので「はい」を選択する。
いったんフロントエンドにアクセスすると自動的にURLが生成される。コントロールパネルの上部に生成されたURLの数が表示される。
生成されたURLを確認するにはコントロールパネルの「SEF-URL参照/編集」を選択する。ここでURLに日本語が含まれていないか確認するとよい。以下のように日本語が含まれている場合、別名を使用して修正する必要がある。
なおタイトルの別名を書き換えた場合、「SEF URL消去」を選択し、URLキャッシュをクリアしないと新しいURLが生成されないので注意が必要。またsh404SEF設定を開き保存したタイミングでもURLはクリアされる。
コンポーネントのURL生成
Joomla標準のコンポーネントや主要なコンポーネントであればURLを生成できる。設定画面の「プラグイン」タブで各コンポーネント毎に設定が行えるようになっている。
また標準のコンポーネント(com_contactなど)の場合、「コンポーネント」タブから設定できる。URLが日本語になってしまう場合、「デフォルト名」にラテン文字で入力しておけばとりあえず回避できる。
また回避できない場合は、全て「スキップ」を選択すればよい。(URLは生成されないが)
SEO機能の有効化(sh404SEF Custom tags moduleの使用)
sh404SEFにはURLの書き換え以外にSEO対策機能もある。これにはコンポーネントインストール時に自動でインストールされる sh404SEF Custom tags moduleが必要となる。なおこのモジュールは1.0.x版ではインストールされるが、1.5.xの場合コンポーネントに統合されているようなのでモジュールはない。また1.5.xでの動作は確認していない。
まずモジュール管理画面を開き、sh404SEF CustomTags moduleを開く。ここで重要なのは公開するポジション。ドキュメントによると、使用しているテンプレートの最後に出現する位置に公開する必要があるらしい。多くのテンプレートはおそらく「debug」というポジションを持っているのでそこに公開する。もしdebugが無い場合はテンプレートを参照して最後に出現するポジションを探って欲しい。また「公開」を「はい」に設定するのも忘れずに。
sh404SEFの設定画面の「メタ/SEO」タブを開いて詳細な設定を行う。「メタ管理を有効」を「はい」に設定すると、生成されたURL毎にタイトル(title)要素、メタ要素のKeywords、Discription、robots、http-equiv属性が設定できるようになる。この機能はsh404SEFが有効になっていないと動作しない。これ以外の「Joomlaジェネレータタグを削除」以下から「外部リンクシンボルの色」までは sh404SEFが無効でも動作するようなので、この部分だけでも非常に有用だ。(Joomla!1.0.xの場合。1.5では不明)
title要素などを変更したい場合は、コントロールパネルの「SEF-URL参照/編集」を開き、設定するURLにチェックを入れて「新規メタ」をクリックする。
設定するtitle要素、Keywords属性などを設定し保存すると有効になる。
?
同様に「ホームページメタ」を選択すれば、トップページのtitle要素およびmeta要素を制御できる。
またこれ以外にもsh404SEF設定のセキュリティタブで各種セキュリティ機能が設定できる。また404ページタブではWYSIWYGエディタを使用して独自の404ページを作成できるので試してほしい。