我想从 重定向我的网页mysite.com/en/home
,而 URI 是mysite.com
.
我用 routes.php 尝试了很多东西,但都没有奏效:
$route['(:any)/'] = 'pages/view/$1/home';
$route[''] = 'home';
$route[''] = 'en';
这只能通过 .htaccess 获得吗?如果是这样,我该怎么做才能让它只影响 mysite.com 或 mysite.com/en 查询。
由于其他 URL 类似于 mysite.com/en/about ,我不想把它们弄乱mysite.com/en/home/about
ps
我有以下规则可以转换mysite.com/x/y
为mysite.com/index.php/x/y
:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
会不会是这条规则与其他规则相冲突?
谢谢你的帮助。
编辑:
好的,为了尝试 Diego Camacho 的回答,我创建了一个空的 CI 项目,将基本 url 设置为config.php
,然后在 routes.php 中创建了 -only- 两个规则,如下所示:
$route['(:any)'] = 'Site';
$route['default_controller'] = "pages/view";
并将此功能添加到 pages.php (控制器):
public function view($arg)
{
if(!$arg)
{
echo "no argument";
}
else
{
echo "argument = $arg";
}
}
所以现在,我希望它像这样工作:
http://localhost/ci/index.php/
-> 没有参数
http://localhost/ci/index.php/abc
-> arg = abc
但相反,它返回这些:
http://localhost/ci/index.php/
->
遇到 PHP 错误
严重性:警告
消息:Pages::view() 缺少参数 1
文件名:控制器/pages.php
行号:26
遇到 PHP 错误
严重性:通知
消息:未定义变量:arg
文件名:控制器/pages.php
行号:28
没有争论
http://localhost/ci/index.php/abc
404页面不存在
未找到您所请求的页面。
我在这里做错了什么?