2013-12-20 75 views
2

我在我的文檔根目錄中創建了一個.htaccess文件/var/www/html/,用於重寫Codeigniter的URL以從所有頁面的URL中刪除「index.php」。Codeigniter URL重寫.htaccess在CentOS上不起作用

例如更改URL從

http://myhost/index.php/controller/function 

http://myhost/controller/function` 

這裏是

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

我從谷歌上搜索到了許多建議,我的`/var/www/html/.htaccess的代碼啓用mod-rewrite模塊,但我可以在我的httpd.conf中看到它已經啓用。

LoadModule rewrite_module modules/mod_rewrite.so 

這對我在Debian 7(Apache/2.4.4)上運行的本地系統是非常有用的。

任何幫助,將不勝感激。 :)

回答

11

您還需要指定可以使用它的位置。例如,在/etc/httpd/conf/httpd.conf中你應該看到類似:

<Directory "/var/www/html"> 

     ...lots of text... 

</Directory> 

請確保有:

<Directory "/var/www/html"> 

    AllowOverride All 

</Directory> 
0

您的centos服務器可能沒有設置爲處理PATH INFO。嘗試將規則目標中的index.php/$1替換爲index.php?/$1

然後,你需要修改你的CI配置,使查詢字符串:http://ellislab.com/codeigniter/user-guide/general/urls.html

在你application/config.php文件中設置$config['enable_query_strings']TRUE