Как настроить htaccess для запуска codeigniter из CLI?

У меня есть приложение codeigniter, которое я пытаюсь запустить через CLI, но оно не работает. Я использовал пример codeigniter docs и использую HMVC без индекса.php на url.

Я замечаю, что скрипт через cli перестает работать после того, как я удалил индекс.php с .htaccess.

Есть идеи по поводу того, в чем может быть проблема и как ее решить?
Спасибо всем за помощь.

Это мой htaccess

    RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/

I have a codeigniter application that i am trying to run via CLI but its not working. I used the example of codeigniter docs and I am using HMVC with no index.php on url.

I notice that the script via cli stop working after I removed index.php with .htaccess.

Any ideas on what might be the problem and how to solve it? Thank´s all of you guys for the help.

This is my htaccess

    RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

And my script

<?php
class Tools extends MX_Controller {

        public function message($to = 'World')
        {
                echo "Hello {$to}!".PHP_EOL;
        }
}

Now my script is located in application/modules/tools/controllers/Tools.php

So I run it on the terminal as follows

$ cd /path/to/project;
$ php index.php tools message

[L]

И мой сценарий

<?php
class Tools extends MX_Controller {

        public function message($to = 'World')
        {
                echo "Hello {$to}!".PHP_EOL;
        }
}

Теперь мой скрипт находится в application / modules/tools/controllers / Tools.РНР

Поэтому я запускаю его на терминале следующим образом

$ cd /path/to/project;
$ php index.php tools message

2 ответа

  1. Попробуйте этот братан, я думаю, вы получите правильный url.

    RewriteEngine on
    Options -Indexes
    
    RewriteCond 
    	

    Try this bro, i think you get right url.

    RewriteEngine on
    Options -Indexes
    
    RewriteCond $1 !^(index\.php|assets|robots\.txt)
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L,QSA]
    

    Well after several day struggling with this problem I found what was wrong, it had nothing to do with htaccess.

    The constructor on the class was checking if the user was logged in, since the user that php runs on was not it stop execution of the script.

    And I would like to mention, the htaccess sample that dev87 provides is the correct one we should use on codeigniter, not the one I am using.

    Thank´s for the replies guys!

    !^(index\.php|assets|robots\.txt)
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/

    Try this bro, i think you get right url.

    RewriteEngine on
    Options -Indexes
    
    RewriteCond $1 !^(index\.php|assets|robots\.txt)
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L,QSA]
    

    Well after several day struggling with this problem I found what was wrong, it had nothing to do with htaccess.

    The constructor on the class was checking if the user was logged in, since the user that php runs on was not it stop execution of the script.

    And I would like to mention, the htaccess sample that dev87 provides is the correct one we should use on codeigniter, not the one I am using.

    Thank´s for the replies guys!

    [L,QSA]

  2. Ну после нескольких дней борьбы с этой проблемой я обнаружил, что было неправильно, это не имело ничего общего с htaccess.

    Конструктор на классе проверял, вошел ли пользователь в систему, так как пользователь, на котором выполняется php, не останавливал выполнение скрипта.

    И я хотел бы отметить, что пример htaccess, который предоставляет dev87, является правильным, который мы должны использовать на codeigniter, а не тот, который я использую.

    Спасибо за ответы ребята!