2014-07-01 87 views
0

我在Windows上編寫我的web應用程序,並將其推送到運行Ubuntu Linux的服務器。這裏是我的.htaccess文件:500內部服務器錯誤CodeIgniter htaccess mod_rewrite

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase /SearchDatGifUbuntu/ 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php?/$1 [L] 
</IfModule> 

<IfModule !mod_rewrite.c> 
    # If we don't have mod_rewrite installed, all 404's 
    # can be sent to index.php, and everything works as normal. 
    ErrorDocument 404 /index.php 
</IfModule> 

我在文件/ etc/apache2的/網站可用/默認如下:

<Directory /var/www/> 
    Options Indexes FollowSymLinks MultiViews 
    AllowOverride All 
    Order allow,deny 
    allow from all 
</Directory> 

我輸入sudo的a2enmod改寫成在我的Ubuntu的命令行服務器,它說mod_rewrite已經打開。

當我通過我的笨應用程序調試,似乎是錯誤出現在CodeIgniter.php線308,這就是:

$CI = new $class(); 

可有人請讓我知道是怎麼回事?

+0

嘗試'AllowOverride FileInfo'而不是'Require all granted',http://stackoverflow.com/a/22526144/661872 –

回答

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

試試這個的.htaccess代碼,並重新啓動你的Apache

如果這不起作用,請嘗試此鏈接

How to enable mod_rewrite for Apache 2.2

0

我不得不編輯:

的/ etc /apache2/apache2.conf

and set:

<Directory /var/www/html> 
    # ... other directives... 
    AllowOverride All 
</Directory> 

然後重新啓動apache,以便讀取上述.htaccess代碼。