いまさらながらに、CodeIgniter3のURL Helperで提供されるbase_url、とsite_urlの違いを忘れたので、実行結果を記録。

URL Helper base_url

URL Helper site_url

http://127.0.0.1/dev/citest/ に配置したCodeIgniter3のarticle/listというコントローラーメソッドを実行したときの結果。

URL Helper
function
$config['index_page'] = 'index.php';
$config['url_suffix'] = '.html';
時の結果
$config['index_page'] = '';
$config['url_suffix'] = '';
時の結果
site_url('news/local/123'); http://127.0.0.1/dev/citest/index.php/news/local/123.html http://127.0.0.1/dev/citest/news/local/123
base_url('news/local/123'); http://127.0.0.1/dev/citest/news/local/123

http://127.0.0.1/dev/citest/news/local/123
uri_string(); article/list article/list
current_url();
※site_url(uri_string());と同じ動作。
http://127.0.0.1/dev/citest/index.php/article/list.html http://127.0.0.1/dev/citest/article/list
index_page(); index.php "(空)"

要するにsite_url、current_urlはconfig.php中のindex_pageとurl_suffix の設定の影響を受ける。

よく忘れてしまうので、メモしておこう。