2010-02-03 129 views
3

所以基本上我有同樣的問題描述herethere。我嘗試了所有描述(還有更多......),但無論如何。這是我的.htaccess:「?」CodeIgniter URL重寫問題

RewriteEngine on 

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

我嘗試過各種東西,如添加一個「/」前「的index.php」或不之後的「index.php」,但它沒有改變任何東西。

我們在開發環境中有完全相同的文件,但是當轉到生產環境時,我無法讓index.php消失。兩個環境之間的唯一區別是它們在各自服務器上的位置(.../public_html/APP與.../public_html/sub-domains-name/APP),我不認爲它是相關的,但我已經擁有在移動應用程序時CI存在一些問題,所以也許有些東西在那裏。

哦,最後,這裏是在config.php文件中的相關行:

$config['base_url'] = "http://www.domain.com/"; 
$config['index_page'] =''; 
$config['uri_protocol'] = "AUTO"; 

編輯 此外,由於生產和開發環境,在同一臺服務器上,我已經排除了可能性代表apache的配置問題。

EDIT2 我試圖在生產服務器上創建一個子目錄,並在那裏遷移網站(www.domain.com/test/)。一切工作正常這樣...所以肯定有一個配置參數我失蹤somwhere。

+0

關於您的編輯 - 在「同一臺服務器上」(通過邏輯服務器)並不一定意味着apache對兩種部署都使用相同的配置。 – naivists 2010-02-03 20:36:49

+0

是的好點,我會問服務器管理員。 – Afrosimon 2010-02-03 20:42:27

回答

1

我在我的應用程序中使用了相同的重寫規則。試試這個: 變化

$config['uri_protocol'] = "AUTO"; 

成爲

$config['uri_protocol'] = "QUERY_STRING"; 

它在我的工作很好。

試着潛入apache訪問日誌和錯誤日誌,找出瀏覽器請求由apache路由的位置以及您的配置項如何獲取該請求。在CI激活日誌也有幫助:

$config['log_threshold'] = 2; 

不要忘記appropiate權限設置爲system/logs目錄,以便Apache可以寫入日誌文件給它。