删除本地的codeigniter的index.php

时间:2013-10-19 09:50:22

标签: php apache codeigniter mod-rewrite

我正在尝试删除我的localhost中的index.php,但它似乎无效,它在http://localhost/testing上。

我将.htacces放在htdocs下的'testing'目录中。

LoadModule rewrite_module modules/mod_rewrite.so  在Apache / conf也已经取消选中。

这是我的.htaccess:

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

这是我的配置:

$config['base_url']    = "http://localhost/testing";
$config['index_page'] = '';
$config['uri_protocol'] = 'AUTO';

当我访问登录控制器时,找不到它。

  

未找到

     

在此服务器上找不到请求的URL /测试/登录。

我真的不知道下一步该尝试什么。任何帮助将不胜感激。

6 个答案:

答案 0 :(得分:1)

试试这个: -

Config.php: -

$config['base_url'] = 'http://localhost/testing/';

$config['index_page'] = '';

的.htaccess

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

答案 1 :(得分:0)

基本上index.php包含在所有网址中:

我们可以使用简单的规则使用.htaccess删除它。以下是此类文件的示例,使用"否定"一切都被重定向的方法,

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

现在重新启动服务器并检查

答案 2 :(得分:0)

您的htaccess应该是

RewriteEngine On
RewriteBase /testing/

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

由于/testing/已经处理了此问题,因此无需追加RewriteBase

答案 3 :(得分:0)

忽略RewriteBase中的尾部斜杠:

RewriteEngine On
RewriteBase /testing

RewriteCond $1 !^(index\.php|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]

$config['base_url']应为http://localhost/testing/

$config['index_page']应为空白。

答案 4 :(得分:0)

在.htaccess文件中尝试这个:

RewriteEngine on
RewriteCond $1 !^(index\.php|robots\.txt|resources)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L]
ErrorDocument 404 /mainpage

您的配置文件很好

差异是“?”在index.php之后

答案 5 :(得分:0)

您可能还想尝试在./application/config/config.php中更改$config[‘uri_protocol’]的值。有时CodeIgniter会弄错。将其更改为PATH_INFO可能会有效。