页面路由CodeIgniter我

时间:2014-01-11 23:58:55

标签: codeigniter

我正在使用一个名为PHP和MVC的参考书和CodeIgniter,我正在关注放入我个人电脑的项目示例。它在我的本地PC运行良好但在网络服务器上出现了一些错误。诊断:问题是页面的路径。在我的个人电脑上正常工作,但当我把它放在网络服务器上时找不到请求的页面。

http://orion.locadados.com.br/~wladi/Carrinho_Compras/
http://orion.locadados.com.br/~wladi/Carrinho_Compras/categoria/artigos-esportivos

我的项目中定义的路由是任何服务器的默认路由,因为它们位于项目文件夹中。只是不要把代码行,它不知道代码的哪一部分放在网上。

我该如何解决这个问题?

文件.htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

文件routes.php

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/*
| -------------------------------------------------------------------------
| URI ROUTING
| -------------------------------------------------------------------------
| This file lets you re-map URI requests to specific controller functions.
|
| Typically there is a one-to-one relationship between a URL string
| and its corresponding controller class/method. The segments in a
| URL normally follow this pattern:
|
|   example.com/class/method/id/
|
| In some instances, however, you may want to remap this relationship
| so that a different class/function is called than the one
| corresponding to the URL.
|
| Please see the user guide for complete details:
|
|   http://codeigniter.com/user_guide/general/routing.html
|
| -------------------------------------------------------------------------
| RESERVED ROUTES
| -------------------------------------------------------------------------
|
| There area two reserved routes:
|
|   $route['default_controller'] = 'welcome';
|
| This route indicates which controller class should be loaded if the
| URI contains no data. In the above example, the "welcome" class
| would be loaded.
|
|   $route['404_override'] = 'errors/page_missing';
|
| This route will tell the Router what URI segments to use if those provided
| in the URL cannot be matched to a valid route.
|
*/


$route['default_controller'] = "home";
$route['categoria/(:any)'] = "home/categoria/$1";
$route['produto/(:any)'] = "produtos/detalhes_produto/$1";

$route['404_override'] = '';

/* End of file routes.php */
/* Location: ./application/config/routes.php */

2 个答案:

答案 0 :(得分:0)

试试这个.htaccess:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

RewriteCond %{REQUEST_URI} ^sys.*
RewriteRule ^(.*)$ /index.php?/$1 [L]

RewriteCond %{REQUEST_URI} ^app.*
RewriteRule ^(.*)$ /index.php?/$1 [L]

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

<IfModule !mod_rewrite.c>
   ErrorDocument 404 /index.php
</IfModule>

假设您的系统文件夹是 sys 且应用程序文件夹是 app

答案 1 :(得分:0)

对我来说,这个htaccess适用于最新的CI版本

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]

试试这个

相关问题