menu

BaserCMS管理画面に出るエラーの原因と改善方法

BaserCMSで管理画面から編集できないときに出る『Not Found』エラーの原因と改善方法

BaserCMS(ベーサーシーエムエス)は、日本発のCMSとして多くの中小企業や自治体のWebサイトに導入されています。WordPressに比べると情報が少なく、トラブル時に解決法が見つけにくいという声も少なくありません。特にスマートURLに伴う自動アップデートはされたものの、「管理画面にログインはできるが、固定ページなどを編集しようとするとエラーになる」という問題は、初心者だけでなく、経験者にとっても原因の特定が難しいケースです。

本稿では、このような状況に陥った場合の原因分析・対処法・今後の予防策について、実際の事例を交えて丁寧に解説していきます。


1. よくあるエラーメッセージと現象

BaserCMSで発生するエラーは、設定ミスやサーバー環境に起因することが多いですが、問題ない設定で動いていたBaserCMSも、セキュリティ等のアップデートに伴う変更で、表示されるエラーメッセージにもパターンがあります。以下はその一例です。

■ 典型的なエラー例

Not Found
エラー: The requested address '/admin/dashboard/admin/pages/index' was not found on this server.

または、

エラー: The requested address '/index.php/admin/dashboard/index.php/admin/pages/index' was not found on this server.

これらのエラーの特徴は、URLが不自然に重複している点です。たとえば /admin/pages/index にアクセスしようとしたはずなのに、/admin/dashboard/admin/pages/indexindex.php/index.php/... のように、同じ部分が2度出現していることがあります。


2. 主な原因と構造的な理解

BaserCMSでこのようなURL重複エラーが起きる場合、以下の要因が絡み合っているケースがほとんどです。

(1).htaccess 設定の不整合

BaserCMSでは、ApacheのRewrite機能を活用してURLを短くする「スマートURL」機能を提供しています。この機能が適切に有効化されていない場合、index.php を含むURLが必要になりますが、設定が中途半端だと index.php/index.php/... のような不正なURLが生成されます。

(2)App.baseUrl の誤設定

app/Config/install.php にある Configure::write('App.baseUrl', '/index.php'); の記述は、スマートURLを無効にした場合に必要な設定です。しかし、スマートURLが有効になっているのにこの設定が残っていると、URLに自動的に index.php が挿入されてしまいます。

(3)管理画面テンプレートのリンク生成ミス

多くのエラーは、BaserCMSの管理画面テンプレートファイル内で 絶対パスと相対パスの扱いを誤っていることに起因します。特に /admin/dashboard ページでは、リンクが /admin/... 形式で書かれていると、現在のパスに付加されて admin/dashboard/admin/pages/index のようなエラーURLになります。


3. 実際の改善ステップ(基本対処法)

以下の手順で構成を見直すことで、多くのエラーは解消されます。

ステップ1:.htaccess ファイルの確認と修正

ルートの .htaccess(推奨:スマートURLを使う)

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>

/app/webroot/.htaccess

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

ステップ2:App.baseUrl の見直し

  • app/Config/install.php を開き、以下の行を 削除または空にする

Configure::write('App.baseUrl', '');
  • '/index.php' になっていると、リンク生成に影響を与えます。

ステップ3:キャッシュの削除

以下のフォルダ内のキャッシュをFTPで削除してください。

/app/tmp/cache/models/
/app/tmp/cache/persistent/
/app/tmp/cache/views/

キャッシュが残っていると、設定変更が反映されない場合があります。


4. テンプレートの修正方法(リンクURL修正)

BaserCMSのダッシュボードで出てくる不正なリンクを修正するには、管理画面テンプレートを app/View/Elements/admin/ に上書き配置し、以下のように書き換えます。

例:固定ページ一覧へのリンク

NGな書き方

<a href="/admin/pages/index">固定ページ一覧</a>

OKな書き方

<?php echo $this->Html->link('固定ページ一覧', array(
'admin' => true,
'controller' => 'pages',
'action' => 'index'
)); ?>

または、

<a href="<?php echo $this->Html->url('/admin/pages/index'); ?>">固定ページ一覧</a>

これにより、リンク先URLが現在のパス階層に影響されず、正しく /admin/pages/index になります。


5. 応用対処:ドキュメントルートの変更

可能であれば、サーバーのドキュメントルートを /app/webroot/ に設定してしまうと、以下のメリットがあります。

  • .htaccess 設定が簡略化できる

  • index.php の取り扱いが安定する

  • URLが自動でスマートになる

ただし、レンタルサーバーによってはこの変更ができない場合もありますので、状況に応じて判断してください。


6. サーバーやPHPの設定も確認

以下の環境も、BaserCMSの動作に影響を与えることがあります:

確認項目内容
Apacheのmod_rewrite有効である必要あり(phpinfo()で確認可)
PHPバージョンBaserCMS 3.xならPHP 5.3〜5.6、4.xなら7.1〜7.4推奨
BcEnv.siteUrl のスキームhttp:// になっていないか? https://に修正すべき場合あり

7. 今後の予防と保守運用のポイント

■ テーマやプラグインを編集する際は、URL生成方法に注意

HTMLを直接書かず、CakePHPの HtmlHelperRouter::url() を活用してください。

■ バージョンアップ時にはテンプレートの互換性をチェック

バージョンアップによりコアテンプレートが変更された場合、独自カスタマイズが競合することがあります。

■ テンプレートのオーバーライドは正しく構成

app/View/Elements/admin/ に配置すれば、コアの /lib/Baser/View/Elements/... を上書きできますが、フォルダ構成を間違えると読み込まれません。


まとめ

BaserCMSで管理画面から編集しようとした際に発生する「URLが重複する」「ページが見つからない」というエラーは、設定ミスやテンプレート内のリンク生成不備に起因することが多いです。エラー発生時は焦らずに以下の3点を冷静に確認することが重要です:

  1. .htaccess のRewrite設定は適切か?

  2. App.baseUrl の設定は現状に合っているか?

  3. テンプレート内のリンク生成が正しいか?

この3点を順番にチェック・修正することで、BaserCMSの管理画面トラブルはかなりの確率で解決できます。適切な設定と予防策を講じ、安心してCMSを活用していきましょう。

サポートのご案内

各サポートに関するご質問など、お気軽にお問い合わせください

03-3562-7238営業時間10:00~19:00(土日祝除く)