【问题标题】:How to alter an empty URL in CodeIgniter?如何更改 CodeIgniter 中的空 URL?
【发布时间】:2013-09-17 13:10:02
【问题描述】:

我想从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

附言

我有以下规则将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 项目,在 config.php 中设置了基本 url,然后在 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

文件名:controllers/pages.php

行号:26

遇到 PHP 错误

严重性:通知

消息:未定义变量:arg

文件名:controllers/pages.php

行号:28

没有论据

http://localhost/ci/index.php/abc

404 页面未找到

找不到您请求的页面。

我在这里做错了什么?

【问题讨论】:

  • route.php 文件不重定向,它只是“替换”(就 CodeIgniter 而言)路由,而 redirect() 进行真正的重定向(更改 URL)
  • 出于某种原因,将“”更改为“家”是有意义的 :) 显然这是错误的。

标签: php .htaccess codeigniter redirect url-rewriting


【解决方案1】:

您需要将您的页面路由到您的主控制器,以便您的主控制器可以加载您的主页。例子

$route['(:any)'] = 'Site';

控制器:

class Site extends CI_Controller {

 function __construct() {
    parent::__construct();
 }

 public function index() {
    $this->home();
 }

 public function home() {
    $this->load->view('content/home');
 }

【讨论】:

  • 是的。如果我终于有了一个可以创建 URL 的系统——使用 PHP 重定向,我真的会哭的高兴。谢啦。一旦我解决了我的问题,我会接受你的回答:)
【解决方案2】:

哦,我想我解决了这个问题。我需要像这样制作 routes.php 文件:

$route['(:any)'] = 'pages/view/$1';
$route['default_controller'] = "pages/view";

【讨论】:

  • 不错。很高兴我能帮上一点忙
猜你喜欢
  • 1970-01-01
  • 2010-11-20
  • 1970-01-01
  • 2018-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多