第三回-1 SEO対策の設定を本格的にやってみよう | オープンソースでフリーなCMS「MODx」を導入してみる

第三回-1 SEO対策の設定を本格的にやってみよう

MODxのプラグインでSEO対策をより強化してみよう。

ページを作る前、設定をする前にまず、SEO対策をしておいた方が今後の作業で楽になります。初期のMODxの状態は、一つのコンテンツにアクセスするURLが一つになりません。ページのIDが1でドキュメントエイリアスをindex.htmlとすると、/index.htmlでも/1でもアクセスできてしまいます。

二つ以上のURLで同じページにアクセスできることはGoogle等の検索エンジンに取って見れば良い事ではありません。そこで、1ページに対してアクセスするURLを一つにしてくれるプラグイン「SEO Strict URLs」を設置します。ページを作成する場合、テンプレートを作る場合に設定する項目があるため、一番最初にやっておいたほうが後で直すことが無くなりますので最初にやっておきましょう。
ただし、公式で配布されているプラグインはURLに関する文字処理がかなり甘いので、「aaa-bbb/」と「aaa-ccc/」という単語記号単語という作りのURLがあった場合、処理がおかしくなります。Phize氏が改良方法を記されておられますので、それを使用させていただきます。

まずは、SEO Strict URLsを設置します。MODx公式サイトのSEO Strict URLs 1.0.1をダウンロードします。とはいっても、これはテキストファイルですのでダウンロードをクリックしたら、そのまま、テキストエディタで開いてください。
そして、MODxの管理画面より、以下の手順で「プラグイン作成」を開いてください。

2008/5/17 追記:Phize氏のサイトで改良版を配布されてましたので、公式の代わりにこちらを使うと楽になります。導入方法はほぼ一緒です。
http://phize.net/portfolio/modx/seostricturls.html

管理画面-プラグインの導入

作成画面を開いたら、プラグイン名を「SEO Strict URLs」とし、プラグインコードに、先ほどダウンロードしてテキストエディタで開いているはずのコードを「全てそのまま」コピーペーストします。説明欄はメモ機能なので、解りやすいようにしておけばOKです。

 

管理画面-プラグインの導入



次に「設定」タブを開いて、以下の内容で設定してください。


1.プラグイン内容の設定欄に以下の内容をコピーペースト

&editDocLinks=Edit document links;int;1 &makeFolders=Rewrite containers as folders;int;1 &emptyFolders=Check for empty container when rewriting;int;1 &override=Enable manual overrides;int;0 &overrideTV=Override TV name;string;seoOverride
2.自動で出来あがる設定欄を以下の内容に変更。もしくは確認。

 

Edit document links: 1
Rewrite containers as folders: 1
Check for empty container when rewriting: 1
Enable manual overrides: 0
Override TV name: seoOverride

 

次に「システムイベント」タブをクリックしてください。 ここではプラグインがどのタイミングで動作するかを設定します。OnWebPageInit OnWebPagePrerenderで動作させますので、この二点にチェックをいれて、保存をしてください。


管理画面-プラグインの導入

次にSEO Strict URLsで使用するテンプレート変数を設定します。MODxはテンプレートを元にページなどのコンテンツを作り込む仕組みなのですが、テンプレート変数は「各テンプレートの個別」に独自設定を作ることができる仕組みです。【リソース】-【リソース管理】-【テンプレート変数】とクリックし、「テンプレート変数の作成」をクリックしてください。
変数名:seoOverride
入力タイプ: DropDown List Menu
入力時のオプション値: Disabled==-1||Base Name==0||Append Extension==1||Folder==2
既定値:  -1

上記以外の欄は空欄で構いませんのでこのまま保存をクリックしてください。
管理画面-プラグインの導入

FTPツールでインストールしたルートディレクトリに入っているはずの、「.ht.access」というファイルを「.htaccess」にリネームします。
これは、Apacheのモジュール「mod_rewrite」用の設定用ファイルで、SEO Strict URLsを狙い通りに動作させるには必須になります。
初期設定の際に設定したregister_globalsの設定もこれに含まれて居ますので、その.htaccessは消去して構いません。 #一応、リネーム前に確認はしてください。 また、個別にhtaccess設定している場合は、個別設定のhtaccessの内容をリネームするファイルの末尾にでも移しておいてください。

当方の設定には文字化け対策で末尾に以下の設定も組み込んでいます。

php_value default_charset utf-8
php_value mbstring.http_output utf-8
php_value mbstring.internal_encoding utf-8
php_value mbstring.script_encoding utf-8

最後にSEO Strict URLsを改良しますが、Phize氏のサイトからダウンロードしたプラグインをそのまま使った場合はコードの改造は必要ありませんが、フレンドリーURLの設定と、.htaccessの改良は行ってください。。
改良作業は前述した公式フォーラムに存在するPhize氏の方法をそのまま作業することになります。1.0.1以外のバージョンでは上手く行かない可能性が高いので、バージョンを確認して作業してください。
http://modxcms.com/forums/index.php/topic,16337.msg104253.html#msg104253

2008/08/12 追記
.htaccessファイルに以下の設定を追記しないと、Googleのウェブマスターツール等で警告が出る場合がありますので、追記しておきましょう。
太字の箇所を追記します。リダイレクトコード(【】内の301となっているとこ)が下の方(元の内容)だと不足の可能性が高いです。これも301をいれたほうがいいのかも。
ただし、この追記を行ったうえで子コンテンツにリダイレクトするスニペット「FirstChildRedirect」を導入すると、リダイレクトループが発生し導入したコンテンツが見れなくなります。

# The Friendly URLs part
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/index.html$ index.php?q=$1 [L,R=301,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

 


作成日
2008.05.04 (日)
最終更新日
2008.08.16 (土)
作成者
Takayuki Hirosawa
  • speed_fish 引っ越ししてからつなげていなかったとても古いnetgearのnas。今日つなげようとしたらlan経由で全くつながらず。windows10が勝手にsmb1を切り捨ててたと判明するまでに3時間。httpでもpingでもつながるのにos… https://t.co/Ejd7om16t0 2018-04-24 11:41:09
  • speed_fish modxからevoが切り離しかー。まあrevoとはもう別物感溢れてたし良いんじゃないでしょうか。やりやすくなるといいなー。 2017-04-28 20:33:09
  • speed_fish Chromeの57から頻発している、ERR_BLOCKED_BY_XSS_AUDITOR。試してみたけど、hidden含め入力項目にJavaScriptが入っても発生。HTTPS化していないフォームはまあ当然発生かな。 2017-04-10 18:00:57
  • speed_fish modxサイトをcloudflare化でeFormで引っかかる。中身みたらsite_urlでリファラーチェックしてました。ssl flexibleを使おうとしてたので、eFormを改造。パラメータにsiteurlを追加しましたとさ。#modx #cloudflare #eform 2017-03-04 00:44:09
  • speed_fish メモメモ。MODxでAMP対応するスニペット。 GETのURLが気に食わないのでリライトかな。 https://t.co/Oa9qzQ5dOr 2017-02-03 01:10:54