こんにちは。
Concrete5を利用したサイト制作・運用を得意としています
Marketing Wizardの中田と申します。
さて、今回は爆速サーバーとして最近有名な
Conoha VPSを利用して
Concrete5を導入した際に遭遇したエラーと
その解消方法についてです。
遭遇したエラー内容としては
Conoha VPSでConcrete5アプリケーションを導入
その後ドメインをIPアドレスに紐付けた後にConcrete5をインストールし
設定より「プリティーURL」をONにしたところ
- topページ以外が表示されなくなる
- topページから設定画面を開いても、設定項目(メニュー)が一切表示されない
というエラー内容でした。
このエラー解消方法を結論から言うと
Conoha VPSでのConcrete5において
プリティーURLを使用することは「難しい」ので
手動でプリティーURLをOFFに戻すことに。
SFTPクライアント経由で、Concrete5の設定ファイルの設定内容を変更し
プリティーURL設定を解除することで、エラー解消としました。
目次
プリティーURL化とは、URLからindex.phpを消去して表示させること
そもそもプリティーURL化とは、URLからindex.phpを消去して表示させることを指します。
concrete5 では、各ページのアドレスに
http://【c5のアドレス】/index.php/○○
といったように「index.php」が含まれてしまいます。しかし、管理画面で設定、そして、「.htaccess」というテキスト設定ファイルを作成し、サーバーにアップロードすることにより、「index.php」を省略する事が可能になります。
「index.php」を隠す、プリティーURLの設定方法 :: concrete5 Japan 日本語公式サイト
↑ただし、こちらの公式ページにもあるように
*レンタルサーバーによっては、ユーザーが設定出来る.htaccessの設定が限定されている可能性があり、この機能を使用出来ないレンタルサーバー会社様を確認しております。
とあり、Conoha VPSでは、そもそものサーバー側に施されている設定で
.htaccess設定の機能が制限されている可能性があります。
.htaccess設定が限定されていることに加え、サーバー設定ファイルのhttpd.confを編集することも出来ないからです。
また、プリティーURLと若干似て異なる設定に
「カノニカルURL」があります。
このカノニカルURLは、複数ドメインで同一のサイトを表示させるよう紐づけている場合に
「どのURLが正規のURLなのか?」
= どのURLがメインとしてのURLなのか?
をgoogleに伝える設定を施すことを指します。
URLとリダイレクト :: concrete5 Japan 日本語公式サイト
canonical属性は「オリジナルでない方のサイト」に記載する必要があります。
canonical属性の記載のあるサイトから、属性値でURL指定されたサイトへSEO価値を渡す、というイメージです。
クロスドメインの「rel=”canonical”」をうまく使ってコンテンツのSEO価値を最大化するには | Moz – SEOとインバウンドマーケティングの実践情報 | Web担当者Forum
プリティーURLを手動でOFF、解除する(戻す)方法
それでは、プリティーURL機能を手動でオフにし
エラーが表示される前の段階に戻す方法です。
Concrete5の設定メニュー等は機能していない状況なので
FTPクライアントソフト等より、Concrete5の設定ファイルへアクセス。
設定ファイルをエディタで編集することで、エラー解消を試みます。
Concrete5公式フォーラムに、同様事象の返信にて
.htaccessファイル内の記述について
一度、「<IfModule mod_rewrite.c>」と「</IfModule>」を削除して試してみてください。
それでもだめな場合はプリティ URL が使えないサーバーだと思います。
プリティーURLをONでアクセス不能 :: concrete5 Japan 日本語公式サイト
とあったため、Conoha VPSでConcrete5をプリティーURL化することは断念。
そのため、以下の方法で手動でプリティーURL機能をオフにしました。
手動で戻す方法は
/application/config/generated_overrides/concrete.php
の
—–
‘seo’ => [
‘url_rewriting’ => true,
],
—–
の表記を—–
‘seo’ => [
‘url_rewriting’ => false,
],
—–
に変えてアップロードすると、プリティー URL 機能をオフにできます。
プリティーURLをONでアクセス不能 :: concrete5 Japan 日本語公式サイト
こちらで無事に、プリティーURLを解除できました。
上記の手順を行ったあとに
もう一度、 設定画面から
「URLから index.php を除く」
のチェックを外した状態で
保存を押します。
すると、.htaccessに記載されてあったリライトルールが
削除されますので、これで手動でのプリティーURL解除手順は完了です。
リライトルールとは、プリティーURL化の際に .htaccessに記述される
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME}/index.html !-f RewriteCond %{REQUEST_FILENAME}/index.php !-f RewriteRule . index.php [L] </IfModule>
の記述のことです。
それでも何とかして、Conoha VPS等でConcrete5をプリティーURL化したい…!
それでもconoha VPS等で
Concrete5をプリティーURL化したい…!という方は
Apache であれば、
・mod_rewrite が有効か
・.htaccess が使えるか (mod_rewrite の設定もできるか)
を確認してください。
プリティーURLをONにしたところトップページ以外がnot foundとなる。 :: concrete5 Japan 日本語公式サイト
上記機能をサーバーで利用できるか確認し
サーバー設定を触って、上記設定が使えるように変更を加えてみてください。
以下、その際に参考になりそうなサイトです。
ConoHaでWordPressのパーマリンクを設定した後にエラーになるのを解消 | サマンサ
【mod_rewrite】「httpd.conf」での設定方法 – mod rewrite
mod_rewriteを有効にできないサイトの場合、「rewrite_rule…」の記述が有効となりません。
rewriteではなく、純粋に「redirect…」の記述をすることは可能なのですが、近しいURLから近しい他URLへリダイレクト処理を行うと、無限ループとなってしまいます。
(例: index.phpのあるなし、wwwなしのURLからwwwのあるURLへのリダイレクト)
ヘテムルで.htaccessを使った301が効かない時の解決法
またredirectの記述では [L] オプションをつけてリダイレクト処理をストップさせることもできません。
他の方法としては、JavaScriptを利用する方法、HTMLのメタタグ内に「meta refresh」タグを挿入して強制的にリダイレクトさせる方法もありますが、SEO的にもあまり宜しくないようです。
(特にmeta refleshによる転送はNGで、まだJavaScriptによる転送のほうがマシとのこと)
- 301リダイレクトを使用しなければ、アドレス変更ツールが利用できない
- W3Cもmeta refreshリダイレクトは10年以上前から非推奨
301リダイレクトと302リダイレクト使い方 ページ・サイト移転方法と期間 | アレグロのSEOブログ
concrete5のプリティーURL化については、以上です。
下のリンク先では、Conoha VPSを利用してConcrete5をインストールしたときの流れを記載しています。
Conoha VPSを利用してConcrete5をインストールした流れ | 魔法使いのwebマーケティング
インストールするときにデータベースの文字照合順序設定エラーの警告が出たのですが
その解消方法も合わせて記載しています。
宜しければ参考にしてみてください。
Leave a Reply