CodeIgniter URL重写问题

时间:2010-02-03 20:18:46

标签: .htaccess codeigniter

所以基本上我遇到的问题是herethere。我尝试了所描述的一切(以及更多......),但无论如何。这是我的.htaccess:

RewriteEngine on

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

我尝试了各种各样的事情,比如在“index.php”之前添加“/”或没有“?”在“index.php”之后,但它没有改变任何东西。

我们在开发环境中拥有完全相同的文件,但在转向生产时,我无法让index.php消失。两个环境之间的唯一区别是它们各自服务器上的位置(... / public_html / APP与... / public_html / sub-domains-name / APP),我认为它不相关,但我已经有了移动应用程序时CI的一些问题,所以也许那里有一些东西。

哦,最后,这是config.php中的相关行:

$config['base_url'] = "http://www.domain.com/";
$config['index_page'] ='';
$config['uri_protocol'] = "AUTO";

修改 此外,由于生产和开发环境在同一台服务器上,我已经排除了代表apache出现配置问题的可能性。

EDIT2 我试图在生产服务器上创建一个子目录,并在那里迁移网站(www.domain.com/test/)。一切都运行得很好......所以肯定有一个我失踪的配置参数。

1 个答案:

答案 0 :(得分:1)

我在我的应用程序中使用相同的重写规则。试试这个: 变化

$config['uri_protocol'] = "AUTO";

成为

$config['uri_protocol'] = "QUERY_STRING";

它在我的工作中很好。

尝试浏览apache访问日志和错误日志,找出apache路由浏览器请求的位置以及CI如何获取该请求。激活登录CI也有帮助:

$config['log_threshold'] = 2;

不要忘记为system/logs目录设置适当的权限,因此apache可以将日志文件写入其中。