我已经做了很多时间。但是,我也被困在这里(在不同的服务器中)并且无法弄清楚问题是什么。
完成htaccess编辑
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /glt.me/CI/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /glt.me/CI/index.php/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
ErrorDocument 404 /index.php
</IfModule>
错误:
内部服务器错误
服务器遇到内部错误或配置错误,无法完成您的请求。
请联系服务器管理员cgiadmin@yourhostingaccount.com并告知他们错误发生的时间,以及可能导致错误的任何操作。
服务器错误日志中可能提供了有关此错误的更多信息。
此外,尝试使用ErrorDocument处理请求时遇到500内部服务器错误错误。
测试这个案例:
http://glt.me/CI/test
http://glt.me/CI/index.php/test
答案 0 :(得分:6)
这是一种简单的方法,它可以从您的网址
中删除index.phpRewriteEngine on
RewriteCond $1 !^(index\.php|uploads|css|js|lib|img|bootstrap|robots\.txt)
RewriteRule ^(.*)$ /manage/index.php/$1 [L]
instead of manage put your own application folder name.
答案 1 :(得分:2)
使用以下htaccess代码从您的codeigniter网址中删除index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt|css)
RewriteRule ^(.*)$ ./index.php/$1 [L]
答案 2 :(得分:2)
虽然您的客户确认重写模块正在运行,但您不能自己确认,请使用下面的代码在项目的根目录下创建一个php文件并尝试浏览该文件。
<?php
if( !function_exists('apache_get_modules')){
echo 'Rewrite module not available';
}else{
if(in_array('mod_rewrite',apache_get_modules()))
echo 'Rewrite module enabled';
}
答案 3 :(得分:1)
首先检查您的apache是否支持mod_rewrite
。如果是,则添加.htaccess
文件。我的codeigniter .htaccess文件是:
DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]
最后在您的配置文件中,更改您的base_url,如果已添加,请从中删除index.php。
答案 4 :(得分:0)
DirectoryIndex index.php
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]
RewriteRule ^pages/.*$ http://localhost/test/? [R=301,L]
答案 5 :(得分:0)
我想在这里做出贡献,因为我自己遇到了麻烦。我只使用IIS5.1进行开发(强烈不推荐!)
1-确保config.php文件包含:
$config['index_page'] = '';
2-我的应用程序不在根文件夹中,它位于localhost / CodeIgniter /。我将config.php更新为:
$config['base_url'] = 'http://localhost/CodeIgniter/';
3-您需要Mod-Rewrite功能。这是嵌入大多数服务器,但IIS5.1需要一个单独的工具。我使用过:IIS Mod-Rewrite by micronovae。只要你在localhost
上使用它就是免费的我把以下代码(而不是CodeIgniter,放置文件夹的名称):
RewriteEngine on
RewriteCond $0 !^/CodeIgniter/(css|js|swf|images|system|tools|themes|index\.php) [NC]
RewriteRule ^/CodeIgniter/(.*)$ /CodeIgniter/index.php/$1 [L]
如果您的应用程序位于根目录,那么您应该使用的代码就是:
RewriteEngine on
RewriteCond $0 !^(css|js|swf|images|system|tools|themes|index\.php) [NC]
RewriteRule ^(.*)$ index.php/$1 [L]
希望它有所帮助。
答案 6 :(得分:0)
在WAMP环境中,只需要三个步骤就可以从Codeigniter中的url中删除index.php。
1)与应用程序持有者并行创建.htacess文件,只需复制以下代码:
RewriteEngine On
RewriteBase /CodeIgniter/
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
2)将$ config [&#39; index_page&#39;]更改为应用程序文件夹中config.php中的空白,如下所示:
$config['index_page'] = '';
3)启用apache的“rewrite_module”。
重启你的apache并完成它。
详细信息:http://sforsuresh.in/removing-index-php-from-url-of-codeigniter-in-wamp/