无法在 Codeigniter 中删除 index.php
Posted
技术标签:
【中文标题】无法在 Codeigniter 中删除 index.php【英文标题】:Unable to remove index.php in Codeigniter 【发布时间】:2016-04-21 14:56:25 【问题描述】:我想删除 index.php 以直接访问我的控制器。但是,我不能直接去我的控制器。我必须使用 index.php。例如:我想去 http://example.com/my_controller/method 而不是 http://example.com/index.php/my_controller/method
顺便说一句,我使用的是我的测试服务器,而不是像 XAMPP 这样的本地服务器。我在我的服务器中启用了 apache mod rewrite。
我尝试了很多 htaccess 规则,条件,但我无法工作。请帮帮我!
这是我的 .htaccess 文件:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
我的 config.php:
$config['index_page'] = '';
$config['uri_protocol'] = 'REQUEST_URI';
我怎样才能直接去?
【问题讨论】:
CodeIgniter removing index.php from url的可能重复 首先你使用的是什么版本的codeigniter以及什么localhost xampp、wamp等 我使用我的服务器来测试它。 如果您使用 wamp,请确保您已启用 apache mod rewrite。并使您的 htaccess 位于应用程序文件夹之外的主目录中。 @wolfgang1983 不,我不使用它,因为我使用的是我的测试服务器,而不是本地服务器。另外,我在我的服务器中启用了 apache mod rewrite,并尝试了主目录。 【参考方案1】:在您的 .htaccess 文件中尝试此代码
RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|robots\.txt)
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_FILENAME !-l
RewriteRule ^(.*)$ index.php/$1 [L]
【讨论】:
更改.htaccess后是否重启了服务器 是的,我做到了。如果我没有重新启动它,我无法通过使用 phpinfo() 在加载的模块中看到该模块【参考方案2】:如何验证 mod_rewrite 是否已实际启用。您可以按照此处的说明进行操作:How to check whether mod_rewrite is enable on server?
【讨论】:
是的,我检查过了,它已启用。图片链接是pasteboard.co/P513xT9.png 去掉If语句怎么样...以上是关于无法在 Codeigniter 中删除 index.php的主要内容,如果未能解决你的问题,请参考以下文章
无法从 CodeIgniter URL 中删除 index.php
从 URL 中删除 index.php - Codeigniter 2