CodeIgniter3 base_urlとsite_urlの違い

いまさらながらに、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というコントローラーメソッドを実行したときの結果。

<th>
  $config['index_page'] = 'index.php';<br />$config['url_suffix'] = '.html'; 時の結果
</th>

<th>
  $config['index_page'] = '';<br />$config['url_suffix'] = ''; 時の結果
</th>
<td>
  http://127.0.0.1/dev/citest/<span style="color: #ff0000">index.php</span>/news/local/123<span style="color: #ff0000">.html</span>
</td>

<td>
  http://127.0.0.1/dev/citest/news/local/123
</td>
<td>
  http://127.0.0.1/dev/citest/news/local/123
</td>

<td>
  http://127.0.0.1/dev/citest/news/local/123
</td>
<td>
  article/list
</td>

<td>
  article/list
</td>
<td>
  http://127.0.0.1/dev/citest/<span style="color: #ff0000">index.php</span>/article/list<span style="color: #ff0000">.html</span>
</td>

<td>
  http://127.0.0.1/dev/citest/article/list
</td>
<td>
  <span style="color: #ff0000">index.php</span>
</td>

<td>
  "(空)"
</td>
URL Helper
function
site_url('news/local/123');
base_url('news/local/123');
uri_string();
current_url();
※site_url(uri_string());と同じ動作。
index_page();

要するにsite_url、current_urlはconfig.php中のindex_pageとurl_suffix の設定の影響を受ける。 よく忘れてしまうので、メモしておこう。