個人用ツール

ver4/スマートURL

提供: baserCMS公式ガイド

2016年9月18日 (日) 17:42時点における183.76.75.203 (トーク)による版

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内, 検索

[このコンテンツは内容調整中です]

スマートURLとはbaserCMSで作成されたサイトのURLを、デフォルトのものより短くする機能です。

機能の概要[編集]

baserCMSではPHPフレームワークであるCakePHPを利用しています。これはCakePHPに限らずですが、多くのPHPフレームワークではそのURLにルールがあり、URLを解析することで、実行するクラスやメソッドを特定し、内部処理を行なって表示を出力しています。 その為、どのようなURLでも必ず共通して通過する処理があり、URLを表示すると以下の例のように「index.php」というファイル名がURLの中に含まれてしまいます。

例)ページ名「about」を表示するURL

http://www.hoge.com/index.php/about

これではURLが長く不恰好になってしまいます。そこで、baserCMSでは「スマートURL」という機能を搭載し、この「index.php」というファイル名部分を消してしまうことができます。スマートURLをオンにした場合、上述の例は以下のようになります。

http://www.hoge.com/about

※ baserCMS 3.0.9 からは、初期状態でスマートURLが設定された状態でインストールされます。  

設定方法[編集]

システム管理のサイト基本設定にあるオプションからスマートURL利用の有無を設定できます。

baserCMSの初期状態では、URLにおいて、baserCMSを設置したフォルダの配下に「index.php」というファイル名が含まれてしまいます。

(例)
http://{baserCMS設置URL}/index.php/about/index

スマートURL機能とは、上記のようにWebサイトのURLの間に挟まってしまう「index.php」を除外し、通常のわかりやすいURL表示に変更する機能です。

(例)
・スマートURLオフ:http://{baserCMS設置URL}/index.php/contact/index
・スマートURLオン:http://{baserCMS設置URL}/contact/index

スマートURLを実現するには、次の項目を確認してください。
・Apache の Rewrite モジュールがインストールされていること
・.htaccess が利用できるように設定されていること
・apacheの設定で AllowOverride を On に設定されていること

スマートURLの設定は、管理画面の「システム設定」より行えます。管理システムからスマートURLをオンにするためには {baserCMSの設置フォルダ}/.htaccess と {baserCMSの設置フォルダ}/app/webroot/.htaccess に、Webサーバ実行ユーザの書き込み権限が必要です。

スマートURLの設定はサーバー環境に深く依存します。 「オン」に変更した場合、サーバーエラーとなり画面にアクセスできなくなる可能性もありますのでご注意ください。

動作確認済レンタルサーバー一覧より各種レンタルサーバーの動作状況を確認できます。

手動でスマートURLを設定する

baserCMSはPHPが動作する全てのサーバーで動作できる事を目標としていますが、サーバーの環境によっては どうしてもアナログな作業が必要な場合があります。
ここでは、その対応方法についてご説明します。

「手作業での設定」が必要となるのは下記の場合です

  • インストール画面を開いた場合にCSSがリンク切れになり正常に表示できない
  • 管理システムでスマートURLをオンにした場合に「Internal Server Error 500」が発生してしまう。または、CSS が正常に読み込まれなくなり画面が崩れてしまう。

.htaccessの設定

  • 下記2箇所に設置されている .htaccess を開きます。
     {baserCMSの設置フォルダ}/.htaccess
     {baserCMSの設置フォルダ}/app/webroot/.htaccess
  • 各 .htaccess ファイルに、スマートURLのためのRewrite設定について解説の記述がありますので、解説文にしたがってRewrite設定を有効にして下さい。

※ .htaccess は特殊なファイルなので、ファイルを開く際には、Terapad や EmEditor 等の、メモ帳以外のテキストエディタ(ソフトウェア)をご利用下さい。
※ サーバーによっては、RwriteBaseの設定値を見直す必要がある場合があります。うまくいかない場合は、ユーザーズフォーラムでご質問ください。

install.phpの設定

  • インストール画面を開く前に{baserCMSの設置フォルダ}/app/Config/install.php を開き次の行を追記し、サーバーにアップロードします。
Configure::write('App.baseUrl', '');
  • インストール画面を開き、正常に表示されていれば完了です。

Rewriteモジュールと、.htaccessファイル[編集]

スマートURLを利用するには、サーバー環境として2つのポイントがあります。一つ目はRewriteモジュールと呼ばれる、URLの内部書き換えや、サーバーの環境変数などに応じたリダイレクトを可能とするモジュールで、スマートURLもこのモジュールを利用してURLの書き換えを行なっています。

二つ目は「.htaccess」というファイルです。これはディレクトリ毎にサーバーの設定を一部設定・変更する為のファイルで、スマートURLを使うためには必須のファイルです。

スマートURLを利用するためには、上記のRewriteモジュールと.htaccessの両方が利用できる環境が必要です。利用できるかどうかはサーバーによって異なりますので、正確な情報はサーバー管理者に問い合わせてください。

対応していないサーバーでスマートURLの設定を行うと、CSSが崩れたり、各ページを正常に表示できず「404エラー」が出る事があります。

 

テキスト寄贈:馬庭 吾一@株式会社ヒニアラタ