使用Apache mod_rewrite循环错误

I need help with Apache2 mod_rewrite. Below is my .htaccess file:

AddDefaultCharset utf-8
php_flag magic_quotes_gpc Off
php_flag display_errors on
php_flag display_startup_errors on
Options -Indexes
php_value upload_max_filesize 20M
php_value post_max_size 20M
php_value max_execution_time 200
php_value max_input_time 200
RewriteEngine on 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteRule ^(.*)$ index.php

In php code I use this:

header('Location: /404', true, 404);

When I write URLs like this:

https://localhost/somecontroller

PHP function:

public function run() {
    $URL = explode('/', $_SERVER['REQUEST_URI']);
    if (@$URL[1]) {
        //Create controllers name from url(Controller + Name);
        $controllerName = 'Controller' . ucfirst($URL[1], 1); //strtoupper(substr($URL[1], 0, 1)) . substr($URL[1], 1);
    } else {
        $controllerName = 'ControllerIndex';
    }

    if (@$URL[2]) {
        //Create actions name from url(action + Name)
        $actionName = 'action' . ucfirst($URL[1], 1);
    } else {
        $actionName = 'actionDefault';
    }

    if (@$URL[3]) {
        $param = $URL[3];
    }
    $Controller = new $controllerName(/*$this->DB*/);
    if (method_exists($Controller, $actionName)) {
        if (@$param) {
            if (@$param == '') {
                header('Location: /404', true, 404);
                exit();
            } else {
                @$Controller->$actionName($this->DB, $param);
            }
        } else {
            @$Controller->$actionName($this->DB);
        }
    } else {
        header('Location: /404', true, 404);
        exit();
    }
}

I get ERR_TOO_MANY_REDIRECTS. Can anyone help me, please?