0

我知道有很多像这样的问题,但我应用了所有内容,并且找不到正确的方法。CodeIgniter 2.1.4 - 路由在服务器中不起作用

的是的.htaccess:

RewriteEngine On 
RewriteBase /NewWebsite 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php/$1 [L] 
</IfModule> 

<IfModule !mod_rewrite.c> 
ErrorDocument 404 /NewWebsite/error.php 
</IfModule> 

在配置/ config.php文件:

$config['base_url'] = 'https://mydomain.com/NewWebsite/'; 
$config['index_page'] = ''; 
$config['uri_protocol'] = 'AUTO'; // I change it with REQUEST_URI and PATH_INFO but it don't work 

在服务器,mod_rewrite的启用。

在本地主机中,一切正常,但当我上传到服务器,只有索引工作(你看到的第一页),但当我想“移动”在网上,我有404错误,页面未找到。

我将显示一个控制器,以及如何将其更改为另一个视图。

class Products_controller extends CI_Controller { 
    public function index() 
    { 
     $this->load->helper('url'); 
     $this->load->helper('html'); 
     $this->load->view('products.php'); 
    } 
} 

而从指数,我把它叫做:

echo base_url('Products_controller/index'); 

OR

echo base_url('Products'); // I have in config/routes.php ---> $route['Products'] = "Products_controller/index"; 

任何人都可以帮我吗?我错过了什么?

谢谢。

+0

什么是您的托管服务提供商? .htaccess因托管服务提供商而异。 –

+0

我的托管服务提供商是hostinet。我问他“mod_rewrite”,他们说它已被激活,所以我可以使用它。 – danigonlinea

+0

试试我的答案,让我知道发生了什么。 –

回答

0

最后,我得到了一个关于这个话题的解决方案。它不是关于.htaccess问题,是一个真正的转储和简单的错误。

在CodeIgniter中,控制器的名称和文件名称 必须具有完全相同的名称。我一直定义我的 控制器的第一个字母大写,而不是在文件 名称。现在一切都好!

谢谢你们。

0

尽管.htaccess有时依赖于托管服务器,但您可以尝试使用此功能并让我们知道。用下面的代码替换您的.htaccess代码:

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*) index.php?/$1 

那就是它。

+0

我做到了,现在...当我尝试更改为调用上述控制器的视图时..我被重定向到“mydomain.com”。我的意思是,我试图在“mydomain.com/NewWebsite”中安装Codeigniter的子目录。 – danigonlinea

+0

我可以尝试将它安装在“mydomain.com”而不是“mydomain”中。com/NewWebsite“但是...它不是一回事吗?它必须是一个根目录? – danigonlinea

+0

请简要描述你的场景,以便我可以完美地回答你。 –

0
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /NewWebsite/index.php [L] 
</IfModule> 

上面应该工作 - 确保您的.htaccess是你想从运行子目录内。

另外请确保您在基本目录中没有冲突的.htaccess规则。

+0

不工作当我尝试离开index.php时,得到404.我不明白,它必须工作 – danigonlinea

+0

我尝试了一个新的项目。没有.htacess,所以你可以在URL中看到index.php。只有两个控制器,两个页面和一个目标...从一个到另一个,它也失败了,它会是什么?它是服务器?还是什么?这会让我发疯,我看到URL是这样的:www.d omain.com/NewWebsite/ControllerName/FunctionName但总是404错误,页面未找到。 – danigonlinea