从xampp中的codeigniter中删除index.php

时间:2012-03-08 15:09:26

标签: php .htaccess codeigniter xampp

我已经尝试了不少答案,但不断反对好恐怖,404恐怖墙。我在Windows 7上使用xamp堆栈。 mod_rewrite已启用。

我将htaccess文件放在主“codeigniter”目录中,即带有application,system和user_guide的目录。我应该把它放在应用程序目录下吗?带有views / model / config / etc的那个?

这是我当前的.htaccess文件:

RewriteEngine On

# Put your installation directory here:
# If your URL is www.example.com/, use /
# If your URL is www.example.com/site_folder/, use /site_folder/

RewriteBase /website/codeigniter/

# Do not enable rewriting for files or directories that exist
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# For reuests that are not actual files or directories,
# Rewrite to index.php/URL
RewriteRule .* index.php/$0 [PT] 

访问http://localhost/website/codeigniter/index.php/welcome有效 访问http://localhost/website/codeigniter/welcome不会

我的config.php有

$config['base_url'] = 'http://localhost/website/codeigniter/';
$config['index_page'] = '';

任何帮助都非常感谢!

错误是:

Object not found!

The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again.

Error 404

更新 哦,只是想看看apache日志,得到这个错误:

[Thu Mar 08 18:28:25 2012] [error] [client ::1] File does not exist: C:/xampp/htdocs/website/codeigniter/welcome

所以似乎没有采用正确的codeigniter重定向?不确定吗?

7 个答案:

答案 0 :(得分:4)

首先创建.htaccess文件并粘贴下面的代码

上的RewriteEngine
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]

然后转到配置文件

$config['index_page'] = 'index.php';

更改为

$config['index_page'] = '';

并享受

答案 1 :(得分:3)

试试这个:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
$config['index_page'] = 'index.php';

更改为

$config['index_page'] = '';

答案 2 :(得分:2)

你在apache中启用了mod_rewrite吗?

答案 3 :(得分:1)

我一次又一次遇到相同的错误,但是经过很少的研究,我找到了解决方法。

<IfModule mod_rewrite.c>

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

</IfModule>

重点是the project folder。就像我使用RewriteBase /Codeigniter_start/RewriteRule ^(.*)$ /Codeigniter_start/index.php/$1 [L,QSA]一样。

也可以像这样从配置文件index_page进行更改。

 $config['index_page'] = '';

希望这会有所帮助。

答案 4 :(得分:0)

尝试将htaccess的最后一行更改为:

RewriteRule .* index.php/$1 [L] 

答案 5 :(得分:0)

还可以尝试将配置文件中的请求方法从AUTO更改为REQUEST_URI

答案 6 :(得分:0)

首先,启用&#34;重写模块&#39;在XAMPP中的apache

如果您使用的是XAMPP或WAMP软件包,则可以在以下位置找到该文件:

{xampp_dir}/apache/conf/httpd.conf
{wamp_dir}/apache/conf/httpd.conf

找到以下行并删除“#”符号。

LoadModule rewrite_module modules/mod_rewrite.so

实际上,我们可以通过XAMPP弹出菜单来做鞋面:Apache - &gt; Apache模块 - &gt;重写模块,并选择它以启用它。

其次,我们需要通过以下方式更改htaccess:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

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