url在codeigniter app中写入.htaccess

时间:2011-10-24 04:50:23

标签: .htaccess codeigniter mod-rewrite url-rewriting

我有一个codeigniter应用程序,我想从URI中删除index.php。所以从codeigniter维基我使用这个脚本。

更改配置后它停止工作,在此更改后,我的所有网址都只返回主页。无论我使用什么链接,它只给我我网站的主页。所以我将它还原为index.php,但服务器的工作方式仍然相同。我尝试完全删除.htacess文件然后使用新的实际工作更新它,但即便如此它的工作方式相同。 (所有网址都重定向到主页)我完全没有线索,因为我的脚本或服务器出了什么问题。

P.S:当使用.htacess时,我确实让$ config [“index”]为空白。

更新

现在我从.htaccess文件中删除了其他所有内容,我只有这个是从uri段中删除index.php的必要部分

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

即使只有这些我的所有网址都只带我到主页。我发生了什么事情,我一无所知。

2 个答案:

答案 0 :(得分:1)

在app / config / config.php中尝试更改值:

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

到:

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

如果仍然无效,请尝试其余选项(PATH_INFO,QUERY_STRING,ORIG_PATH_INFO)。

答案 1 :(得分:0)

你的ErrorDocument行在<IfModule !mod_rewrite.c>里面,对我来说看起来你没有安装mod_rewrite模块。 (如果你这样做,那么该行将被忽略。)ErrorDocument 404 /index.php行是一个黑客,你可以访问/index.php文件,以防请求进入不存在的文件。

要在CodeIgnitor中设置404页面,您需要编辑routes.php文件。

$route['404_override'] = 'general/not_found';

More details.