codeigniter删除index.php(主机可能出现的问题)

时间:2011-02-04 15:54:20

标签: mod-rewrite codeigniter

大家好,我在CodeIgniter中删除index.php时遇到了一些问题。

我在本地创建了我的应用程序并且它工作正常但是当我上传它时,删除index.php似乎不起作用。

我觉得这可能与我的主人有关,这不是最好的,我以前遇到过问题。它托管在Fatcow上。

所以......

我的所有CodeIgniter文件都位于一个名为outfitr的子目录中。 e.g

<root>/outfitr/

我的.htaccess文件位于此文件夹中,以下内容取自CI wiki:

EDITED

RewriteEngine On
RewriteBase /outfitr/

RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]

RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ /index.php?/$1 [L]

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

我的config.php更改如下所示。我已经为我的应用程序的一部分启用了查询字符串。

$config['base_url'] = "<host>.com/outfitr/";
$config['index_page'] = "";

...

$config['uri_protocol'] = "PATH_INFO";
$config['enable_query_strings'] = TRUE;

任何帮助都会很棒。正如我所说,我认为它可能与宿主Fatcow有关。

我已经测试了mod_rewrite,按照下一页上的步骤进行操作,似乎已启用。 http://www.wallpaperama.com/forums/how-to-test-check-if-mod-rewrite-is-enabled-t40.html

2 个答案:

答案 0 :(得分:3)

好吧经过一些试验和错误我终于得到了它的工作。我按如下方式设置了我的.htaccess文件。注意'?'在RewriteRule中。

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

然后在config.php中设置

$config['uri_protocol'] = 'REQUEST_URI';

认为这取决于某些主机设置其mod_rewrite模块的方式。 Dreamhost和hostgator也有同样的问题。

答案 1 :(得分:0)

http://codeigniter.com/wiki/mod_rewrite/

  
      
  1. 如果您的安装不在服务器根目录中,则需要将RewriteBase行从“RewriteBase /”修改为“RewriteBase / folder /”
  2.   

你当前的.htaccess是将所有请求重新路由到/index.php,正如你所说的那样。您希望他们路由到/outfitr/index.php。

您可以通过更改RewriteBase / outfitr /

来完成此操作

如果没有,请提供更多详细信息。