2016-05-23 58 views
0

我有一個codeigniter應用程序,我試圖通過CLI運行,但它不工作。我使用了codeigniter文檔的示例,我使用的是沒有index.php的HMVC。如何設置htaccess從CLI運行codeigniter?

我注意到,通過cli腳本停止工作後,我用.htaccess刪除index.php。

關於什麼可能是問題以及如何解決它的任何想法?感謝你們所有人的幫助。

這是我的htaccess

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

而且我的腳本

<?php 
class Tools extends MX_Controller { 

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

現在我的腳本位於應用程序/模塊/工具/控制器/ Tools.php

於是我運行在終端上如下

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

我不認爲'.htaccess'與CLI文件訪問有關。畢竟,所有的htaccess規則都是圍繞URL而不是系統路徑。也許你必須調用'php index.php工具消息'(如果在Linux上區分大小寫) – Justinas

+0

是的,但試過,但沒有運氣:( –

+0

解釋你的意思'腳本通過cli停止工作' – Justinas

回答

0

嘗試這個兄弟,我認爲你得到正確的網址。

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] 
+0

謝謝dev87的幫助,我發現這個問題,它與htaccess無關 –

0

好幾天這個問題所困擾,我發現什麼是錯誤的之後,它有沒有關係htaccess的。

該類的構造函數正在檢查用戶是否已登錄,因爲php運行的用戶不是它停止執行腳本。

我想提一下,dev87提供的htaccess示例是我們應該在codeigniter上使用的正確的示例,而不是我正在使用的示例。

Thank's for the guys guys!