0

我有一个 CodeIgniter 安装在我们的根 Web 目录中运行,我将它复制到一个名为 /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 错误...

我有什么共同之处吗?

4

1 回答 1

3

在 RewriteRule 中启用并在 index.php 前面FollowSymlinks添加一个:./

<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'] = '';并在构建链接时使用base_url()url 帮助程序,这使得移动环境更容易(例如 subdir'd dev & root-level production)。

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

于 2012-07-08T02:58:47.550 回答