mod_rewriteを使いたくない

mod_rewriteが無い環境については、こういう形にURLに書き換える形であれば最低限の動作が期待出来ますが、若干のソースコードの修正が必要です。

http://example.com/bullet/index.php/aaa/bbb

今のURLのパターンの前に、index.phpを追加します。

こういう形でもいいのですが、修正量が多くなるため推奨出来ません。

http://example.com/bullet/index.php?page=aaa&param=bbb

対応するには、以下を修正する必要があります。

  • dispatcher.phpの内容をindex.phpにコピー(dispatcher.phpを削除することを推奨します)
  • config.inc.phpのBASE_URLを http://example.com/bullet/index.php/ にする(例参照)
  • config.inc.phpのAPI_URL、CSS_URL、JS_URL、IMG_URLを、BASE_URLを使わない形に修正(例参照)

define('BASE_URL', '/index.php/');
define('API_URL', '/api/');
define('CSS_URL', '/css/');
define('JS_URL', '/js/');
define('IMG_URL', '/img/');

自動判定について

フレームワークを使わない理由と同じく、出来る限り無駄な処理を入れない最速動作を目指したいので、この手の自動判定処理を入れる予定はありません。

/cgi-bin/環境について

sourceforgeのホスティングのように、cgi-bin、htdocsと分かれているような場合、少々複雑になります。上記の設定に加えて、以下5ファイルを修正する必要がある可能性があります。

  • lib/env.php
  • lib/Skin.class.php
  • lib/common.inc.php
  • js/base.php
  • lib/pages/layouts/header.inc.php

env.phpのIMGを適切な場所(htdocs以下のimgフォルダを指すよう)に、Skin.class.phpの$this->target_dirの指定を適切な場所(htdocs以下のcssフォルダを指すよう)に。

またbase.phpはjs以下ではcgiとみなされず動作しないため、cgi-bin以下に移動する必要があり、header.inc.phpでは移動先のbase.phpを見るように修正する必要があります。

最後にcommon.inc.phpですが、session_set_cookie_paramsでBASE_URLをCookieの場所を指定していますが、sourceforge.jp環境では"/"であれば適切に動作します。詳細な設定はサーバ管理者の方と相談しながら実施してください。

この設定は少し複雑すぎますが、現状は仕様です。