首页 > 解决方案 > Codeigniter 自动重定向到友好的 url 不起作用

问题描述

我需要将 url http://domainname/foldername/functionname/dynamicstring重定向到http://domainname/foldername/dynamicstring

我在我的路线中添加了这个

$route['([a-zA-z_]+)'] = 'controllername/functionname/$1';

只有当我在 url 中键入它时,我才能访问这个 url http://domainname/foldername/dynamicstring 。否则在单击按钮时,该站点将重定向到http://domainname/foldername/functionname/dynamicstring现在显示 404 未找到。

查看页面代码

<a href="<?php echo base_url('functionname');?>/<?php echo $dynamicstring ;?>"></a>

控制器

public function functionname($dynamicstring)
  {
    $data['fun1'] = $this->Modelname->fun1($dynamicstring);
    $data['fun2'] = $this->Modelname->fun2($dynamicstring);
    $this->load->view('folder/viewpage',$data);
  }

有人可以帮我弄这个吗?

标签: .htaccesscodeigniterurldynamicroutes

解决方案


所以,我创建了一个演示,它对我有用。我已经在代码本身中进行了解释。

路由.php

// As the name suggests here {functionname} is any function inside the controller, controller name is {controller} which is inside folder named {folder}.
$route['functionname/(:any)'] = 'folder/controller/functionname/$1'; // if you want {foldername} here then replace {functionname} with {foldername}

控制器.php

class Controller extends CI_Controller {

    public function functionname($dynamicstring){
        echo $dynamicstring;
    }
}

看法

<?php 
    //get the value in $dynamicstring(your condition)
    $dynamicstring = 'harry-potter'; //say harry-potter
?>

<a href="<?php echo base_url("functionname/$dynamicstring"); ?>">My name</a>
<!--<a href="<?php echo base_url("foldername/$dynamicstring"); ?>">My name</a>-->

输出:
输出图像

如您所见,它对我来说很好用。看看对你有没有帮助。


推荐阅读