删除index.php - 官方指南不工作(代码点火器)

时间:2013-11-25 09:50:31

标签: codeigniter

我正在尝试删除Code Igniter的url中的index.php。根据官方指南,我应该将以下代码添加到.htaccess文件中。

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

这不起作用。

所以我做了更多搜索,有人说我应该删除索引页面上的默认配置,所以我在config.php文件中进行了更改:

$config['index_page'] = '';

它仍然无效。然后,在更多的搜索中,我找到了不同版本的代码,就像这个(只有一个例子,我已经尝试了很多版本)

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]

我最初将代码放在根目录的.htaccess中,但由于它不起作用,我还尝试将其添加到其他目录中的.htaccess。然而,仍然没有工作。

我只是使用默认的欢迎页面进行测试,所以我确信这不是编码问题。即。

http://localhost/projectFolder/CodeIgniter/welcome/

有人知道我错过了什么?

3 个答案:

答案 0 :(得分:1)

我假设http://localhost/projectFolder/CodeIgniter/映射到的文件夹是你的docroot,而.htaccess文件在该目录中。

如果是这种情况,那么您的代码是正确的 - 所以这是您的apache配置问题。通过更改目录块.htaccess,确保您允许AllowOverride All个文件。

Take a look at this page for help doing that.

答案 1 :(得分:0)

我认为以下代码应该适合您

RewriteEngine on
RewriteCond $1 !^(index\.php|css|js|public|themes|captcha|robots|documents|\.txt)
RewriteRule ^(.*)$ /projectFolder/index.php/$1 [L]

希望这会对你有所帮助。

答案 2 :(得分:0)

对配置文件进行此更改

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

然后在你的.htaccess尝试

 DirectoryIndex index.php
 RewriteEngine on
 RewriteCond $1 !^(index\.php|(.*)\.swf|forums|images|css|downloads|js|robots\.txt|favicon\.ico)
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(.*)$ ./index.php?$1 [L,QSA] 

还要确保在apache配置中启用mod_rewrite

.htaccess文件应位于项目的根目录中,即外部应用程序文件夹