BaserCMS管理画面に出るエラーの原因と改善方法 2025.08.06BaserCMSで管理画面から編集できないときに出る『Not Found』エラーの原因と改善方法BaserCMS(ベーサーシーエムエス)は、日本発のCMSとして多くの中小企業や自治体のWebサイトに導入されています。WordPressに比べると情報が少なく、トラブル時に解決法が見つけにくいという声も少なくありません。特にスマートURLに伴う自動アップデートはされたものの、「管理画面にログインはできるが、固定ページなどを編集しようとするとエラーになる」という問題は、初心者だけでなく、経験者にとっても原因の特定が難しいケースです。本稿では、このような状況に陥った場合の原因分析・対処法・今後の予防策について、実際の事例を交えて丁寧に解説していきます。目次1 1. よくあるエラーメッセージと現象1.1 ■ 典型的なエラー例2 2. 主な原因と構造的な理解2.1 (1).htaccess 設定の不整合2.2 (2)App.baseUrl の誤設定2.3 (3)管理画面テンプレートのリンク生成ミス3 3. 実際の改善ステップ(基本対処法)3.1 ステップ1:.htaccess ファイルの確認と修正3.2 ステップ2:App.baseUrl の見直し3.3 ステップ3:キャッシュの削除4 4. テンプレートの修正方法(リンクURL修正)4.1 例:固定ページ一覧へのリンク5 5. 応用対処:ドキュメントルートの変更6 6. サーバーやPHPの設定も確認7 7. 今後の予防と保守運用のポイント7.1 ■ テーマやプラグインを編集する際は、URL生成方法に注意7.2 ■ バージョンアップ時にはテンプレートの互換性をチェック7.3 ■ テンプレートのオーバーライドは正しく構成8 まとめ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/index や index.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の HtmlHelper や Router::url() を活用してください。■ バージョンアップ時にはテンプレートの互換性をチェックバージョンアップによりコアテンプレートが変更された場合、独自カスタマイズが競合することがあります。■ テンプレートのオーバーライドは正しく構成app/View/Elements/admin/ に配置すれば、コアの /lib/Baser/View/Elements/... を上書きできますが、フォルダ構成を間違えると読み込まれません。まとめBaserCMSで管理画面から編集しようとした際に発生する「URLが重複する」「ページが見つからない」というエラーは、設定ミスやテンプレート内のリンク生成不備に起因することが多いです。エラー発生時は焦らずに以下の3点を冷静に確認することが重要です:.htaccess のRewrite設定は適切か?App.baseUrl の設定は現状に合っているか?テンプレート内のリンク生成が正しいか?この3点を順番にチェック・修正することで、BaserCMSの管理画面トラブルはかなりの確率で解決できます。適切な設定と予防策を講じ、安心してCMSを活用していきましょう。 前の記事へ 次の記事へ