Htaccess无法在Codeigniter中工作

时间:2014-03-14 06:33:58

标签: php .htaccess codeigniter tankauth

我在我的项目中使用tank auth。在我的localhost它工作正常。但是当我将项目上传到服务器时,我收到错误

  

未指定输入文件。

我知道这是因为htaccess。我的网址就像http://example.org/project/test/tankauth/。当我提供此网址时,它会重定向到http://example.org/project/test/tankauth/index.php/auth/login并显示错误。但是,如果我尝试使用http://example.org/project/test/tankauth/index.php?/auth/login之类的网址,它会正常工作。

我的htaccess文件如下所示:

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

我对htaccess并不擅长。

3 个答案:

答案 0 :(得分:0)

我假设你在这个上使用apache,我也假设你没有对你的apache config / etc / apache2 /做任何改动,最后我假设你有权访问你的服务器,如果是这种情况,您可能需要检查http://httpd.apache.org/docs/2.2/mod/core.html#allowoverride

在/ etc / apache2 / sites-available / default中你会找到

<Directory /path/to/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None <---change None to FileInfo or All
Order allow, deny
allow from all
</Directory>

然后重置你的apache - &gt; service apache2 restart or sudo service apache2 restart

使用AllowOverride All

抬头可能会标记一些严重的漏洞问题,如果这是生产服务器,我建议您不要使用它。

希望它有所帮助,欢呼!

答案 1 :(得分:0)

试试这个(改变最后一行)

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

并在application / config / config.php

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

答案 2 :(得分:0)

这是工作。

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