concrete5 のアドレスから「index.php」を隠す「プリティーURL」の設定方法
concrete5 では、各ページのアドレスに
http://【c5のアドレス】/index.php/○○
といったように「index.php」が含まれてしまいます。
しかし、管理画面で設定、そして、「.htaccess」というテキスト設定ファイルを作成し、サーバーにアップロードすることにより、「index.php」を省略する事が可能になります。
ここでは、その方法をご紹介します。
*レンタルサーバーによっては、ユーザーが設定出来る.htaccessの設定が限定されている可能性があり、この機能を使用出来ないレンタルサーバー会社様を確認しております。現在、対処方法を考えて下さる方を募っています。
1. concrete5 に「admin」ユーザーとしてログイン
http://【c5のアドレス】/index.php/login
から、「admin」ユーザーとしてログインして下さい。
2. 「管理画面」 - 「システムと設定」をクリック
3. 「SEO と統計」の「プリティーURL」をクリック
4.「プリティーURLを使用する」をチェックして「保存」
サーバーが concrete5 のインストールされたフォルダに書き込み権限があれば、自動的に「.htaccess」ファイルを作成して、保存してくれます。その場合は、作業完了です。
サーバーに書き込み権限がないときは、メッセージに、下記設定情報を「.htaccess」というテキストファイル名で保存してくださいという支持が出ますので、それに従って、下記テキストエリアから出力された設定を保存してください。
なお、上記設定は apache を使用しているサーバーの場合です。nginx では config ファイルより設定する必要がありますのでお気をつけ下さい。nginx でのコンフィグ設定参考記事:http://a-lab.biz/588
concrete5.5 以前では「サイト全体の設定」です。
1. concrete5 に「admin」ユーザーとしてログイン
http://【c5のアドレス】/index.php/login
から、「admin」ユーザーとしてログインして下さい。
2. 管理画面 - サイト全体の設定 をクリック
3. SEO対策の項目中の「プリティーURLを使用する」をチェックし保存ボタンを押す
4. ページ中に現れる、コードをコピー、「.htaccess」という名前のテキストファイルを作成し、コードを貼付け、サーバーにアップロード
ウインドウズでは「アクセサリー」- 「メモ帳」。マックでは、「テキスト編集」などのソフトを使って、画面に現れるコードを使い、新規作成したテキストファイルに貼付けます。
Windowsで「メモ帳」を使用されている方
普段、テキストファイルの拡張子は、「.txt」で終わると思いますが、このテキストファイルは、「.txt」などの拡張子を使わずに、「.htaccess」というファイル名で保存してもらいます。最後に、「.txt」の拡張子がついているとうまく行きません。
Windowsの初期設定では、「拡張子を隠す」という機能がついていますので、「.txt」という拡張子をつけたつもりでなくても、隠れている可能性がありますので、きちんと確認下さい。
また、「htaccess.txt」などの名前で保存し、サーバーにアップロードしてからFTPソフトを使い、「.htaccess」への名前変更をされるのも構いません。
Mac を使用されている方
マックでは、「.htaccess」というテキストファイルを作成されると、OSの設定で、ファインダーから隠れてしまいます。
ですので、先ず、「htaccess.txt」などの名前で保存し、サーバーにアップロードしてからFTPソフトを使い、「.htaccess」への名前変更をお願い致します。
5. FTPソフトを使い、先ほどのテキスト設定ファイルを concrete5 がインストールされているディレクトリーに転送
「.htaccess」というファイル名は、サーバーOSでは、「隠れファイル」と認識されてサーバー上にきちんと保存されたかどうか分からない場合があります。
FTPソフトの設定項目に「隠れファイルを表示する」などの設定が出来る項目があると思いますので、きちんと「隠れファイルを表示する」という設定をされないと行けない場合があります。
これで作業終了です。
ページに戻って、アドレスの「index.php」が消えているかどうかの確認をされて下さい。
よくある問題
concrete5 の実際のフォルダー名でページ指定
プリティーURLを有効にされた場合、concrete5 の実際にあるフォルダーと全く同じ名前
/blocks
/concrete
/concrete/以下のフォルダー
/config
/controllers
…
をページ別名(Alias)にしないように気を付けて下さい。もしされた場合、空白ページなどが表示されてしまいます。
全てのページで「Forbidden」エラーが表示される
とある大手のレンタルサーバー会社様でこのエラーの発生を確認しております。
対処方法
.htaccess のテキストファイルに
Options SymLinksIfOwnerMatch
とテキストファイルの一番上に追加すると回避出来るサーバーもございます。(全てがうまく行くとは限りません)ユーザー様からのご報告です。ありがとうございました。
それでもうまく行かなかった場合
また、全てのページにおいて、エラーが発生し、ページが表示されなくなった場合は、お使いのレンタルサーバー会社が、その設定方法を、セキュリティーの観点から許可していない場合があります。
ですので、残念ながら、現在の時点では、 お使いのレンタルサーバー様では、 concrete5 のプリティーURL機能を使用出来ません。
- アップロードした「.htaccess」ファイルを削除する
- 「管理画面」 - 「サイト全体の設定」ページに戻り、「プリティーURLを使用する」のチェックを外し「保存」ボタンを押して、設定を戻されて下さい。
現在、私どもの方で、対処方法を模索中です。また、解決策等の提案がありましたら、ぜひとも concrete5 日本語公式コミュニティー までお知らせ下さい。
ホームだけ正常に表示され、他のページは「404」もしくは「ページが見つかりません」エラーが出る
この場合は、「.htaccess」のテキストファイルが正常に設定されていない可能性があります。
ファイル名がきちんと「.htaccess」という名前になっているかの再確認をお願いします。