7

我已经做了很多时间。但是,我再次被困在这里(在不同的服务器中)并且无法弄清楚问题是什么。

完成 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 Internal Server Error 错误。

测试这个案例:

http://glt.me/CI/test
http://glt.me/CI/index.php/test
4

7 回答 7

6

这是一种简单的方法,它适用于从您的 url 中删除 index.php

RewriteEngine 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.
于 2013-09-02T11:48:33.900 回答
2

使用以下 htaccess 代码从您的 codeigniter url 中删除 index.php

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt|css)
RewriteRule ^(.*)$ ./index.php/$1 [L]
于 2013-09-02T12:00:04.100 回答
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';
 }
于 2013-09-02T12:05:31.330 回答
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。

于 2013-09-02T10:54:29.880 回答
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 需要一个单独的工具。我使用过:micronovae 的 IIS Mod-Rewrite。只要你在 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]

希望能帮助到你。

于 2014-02-19T02:40:14.457 回答
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.php 中将 $config['index_page'] 更改为空白,如下所示:

$config['index_page'] = '';

3) 启用 apache 的“rewrite_module”。

重新启动您的 apache 并完成。

详细信息:http ://sforsuresh.in/removing-index-php-from-url-of-codeigniter-in-wamp/

于 2014-05-16T14:13:29.233 回答
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]
于 2013-11-12T10:46:19.010 回答