CodeIgniter不会在子目录中运行

时间:2012-07-08 02:52:03

标签: .htaccess codeigniter routes

我在我们的根网站目录中运行了一个CodeIgniter安装,我将其复制到一个名为/ dev的子目录中...我编辑了config / config.php文件以反映更改,所以它现在是这样的:

$config['base_url']  = 'http://mysite.com/dev';
$config['sbase_url']     = 'https://mysite.com/dev';
$config['default_email'] = 'noreply@mysite.com';
$config['site_url']  = 'http://mysite.com/dev';

这是我的.htaccess文件:

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

当我将鼠标悬停在网站上的任何链接上时,它们都是正确的,例如,联系我们页面链接会显示www.mysite.com/dev/contact但是当我点击任何链接时,我会收到404错误... < / p>

我缺少什么常见的东西?

1 个答案:

答案 0 :(得分:3)

启用FollowSymlinks&amp;在RewriteRule中的index.php前添加./

<IfModule mod_rewrite.c>
  Options +FollowSymlinks
  RewriteEngine On

  # block hidden directories
  RewriteRule "(^|/)\." - [F]

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]
</IfModule>

另外,我会留空$config['base_url'] = '';&amp;改为在构造链接时使用base_url() url助手,这样可以更轻松地移动环境(例如,subdir'd dev&amp; root-level production )。

...当然,确保在Apache配置中启用了ModRewrite。