-1

我试图用 .htaccess、CI 1.7.3 和 php 5.3 隐藏 index.php 并得到一个错误 404。但它在我的开发服务器上运行良好,它有 php 5.2,其余的都是相同的配置,我开发了我的使用 HMVC 和我的 .htaccess 的应用程序是

    RewriteEngine on
    Options -Indexes
    RewriteBase /myapp/

    RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5})$
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ /myapp/index.php?/$1 [L] 

有人建议我如何解决这个问题,我应该升级我的 CI 版本吗?

谢谢

4

3 回答 3

1

尝试

RewriteEngine on
Options -Indexes
RewriteBase /myapp/

RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5})$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [L] 

或者

RewriteEngine on
Options -Indexes
RewriteBase /

RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5})$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ myapp/index.php?/$1 [L] 

可能是您的 .htaccess 认为它​​应该打开myapp/myapp/index.php

于 2012-09-07T09:01:23.150 回答
1

从 system/application/config 目录打开 config.php

并更换

$config['index_page'] = “index.php” by $config['index_page'] = “”

在 CodeIgniter 目录的根目录下创建一个“.htaccess”文件

并添加以下行。

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

在某些情况下,uri_protocol 的默认设置无法正常工作。

要解决这个问题,只需更换

`$config['uri_protocol'] = “AUTO”` 

经过

 $config['uri_protocol'] = “REQUEST_URI” 

从系统/应用程序/config/config.php

于 2012-09-07T11:27:05.120 回答
0

您是否检查过您的 apache 重写模块是否包含在您的服务器中并在 apache 配置文件中启用了重写规则。

于 2012-09-07T09:18:03.577 回答