【发布时间】:2017-01-15 16:44:30
【问题描述】:
我一直试图从我的网址中删除索引,但是当我说索引时没有运气,我的意思是 www.mywebsite.com/en/controller/index 不是 www.mywebsite.com/index.php
我正在使用 codeigniter 3,我在 ubuntu 16.04 上所以没有 httpd.conf 但 mywebsite.com.conf mod rewrite 已激活,我有另一个使用 codeigniter 2 的项目,它运行良好。
这是我的 .htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
感谢这个插件,我正在使用多语言网站 http://jeromejaglale.com/doc/php/codeigniter_i18n
在我的路由中
$route['default_controller'] = 'App';
$route['404_override'] = 'site_404';
$route['translate_uri_dashes'] = TRUE;
if ($this->config->item('multilanguage')):
$route['^(en|fr)/(.+)$'] = "$2";
$route['^(en|fr)$'] = "$2";
endif;
在我的控制器中我有这个
class App extends MX_Controller {
function __construct()
{
parent::__construct();
header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');
}
public function index()
{
/*I load my view here*/
}
}
我也打算使用多个控制器和多个方法 我一直在寻找解决方案,但我总是找到关于 index.php 的解决方案,而不是控制器中的实际方法(保留在 url 中)
【问题讨论】:
-
$route['^(en|fr)$'] = "$2";这不会失败吗? -
这里也是小写
$route['default_controller'] = 'module/app/index';
标签: codeigniter url-rewriting url-routing codeigniter-3