基本的に、有効なページを表示するのは、それらがクエリのパラメータを表すURL内の正しい数のURIセグメントである場合のみです。
URI segments
他のメソッドを呼び出す前に、前処理としての数を確認する必要があります。このようにして、URLに実際には1つのセグメントしかないことを確認できます。
に3つ以上のセグメントが存在することがわかった場合はURL
、CodeIgniterがそのようなエラー処理を提供する便利な機能を使用して、それに応じてその状況を処理します。
URL内のセグメントの数が正しいかどうかを確認できます。希望どおりでない場合は、show_404()
メソッドを呼び出します。
投稿したURLの例
http://myweburl/Everything/gov/2/order.txt
では、実際には4つのセグメントがあります。
// from the docs http://codeigniter.com/user_guide/libraries/uri.html
$total_segments = $this->uri->total_segments();
// 3 segments would be the max if this is your url:
// http://myweburl/Everything/gov/2/order.txt (this url contains 4 segments)
// ^controller/function/uri_segment
// this means that there are 3 segments in your URL
// you don't want to have more than 3, so check for that
// with the total_segments() function
if($total_segments > 3)
{
$valid = false;
show_404();
}
else
{
$valid = true;
}
if($valid)
{
// process data as usual
}