服务器500错误 - 在子文件夹中移动了应用程序

时间:2013-04-06 11:54:12

标签: php apache .htaccess codeigniter mod-rewrite

我在我的网站的子文件夹中开发了一个应用程序,它工作正常。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|images|swf|uploads|js|css|robots\.txt)
RewriteRule ^(.*)$ /app/index.php/$1 [L]
</IfModule>

此文件工作正常,因此不需要index.php在应用程序中导航。现在我将应用程序移动到网站的根目录并将最后一行更改为

RewriteRule ^(.*)$ index.php/$1 [L]

现在我开始收到内部服务器错误500.我不确定这是我做过的事情,或者.htacces需要以不同方式配置。它也可能是主机的问题,但我想先耗尽我的选择。

任何帮助将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:1)

如果您在托管的根目录中只需要

 <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond $1 !^(index\.php|images|swf|uploads|js|css|robots\.txt)
    RewriteRule ^(.*)$ /index.php/$1 [L]
    </IfModule>

如果您站在文件夹/foo中,则需要:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /foo
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond $1 !^(index\.php|images|swf|uploads|js|css|robots\.txt)
    RewriteRule ^(.*)$ /foo/index.php/$1 [L]
    </IfModule>

如果仍然不能正常工作试试这个,对我来说它可以全部工作:

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