0

我正在使用代码点火器编写一个网站。这是我当前的 .htaccess 文件。

RewriteEngine on
RewriteCond $1 !^(index\.php|css|js|images|robots\.txt)
RewriteRule ^(.*)$ /ci/index.php/$1 [L]

我有一个用户控制器,除其他外,它在从 url 访问时显示配置文件,如下所示

mysite.com/user/getProfile/$username

我想做的是摆脱 getProfile 以便 mysitecom/user/$username 将调用 get profile 函数。同时仍然保留上面的代码。如果我必须牺牲能够在该控制器中拥有其他功能,那就这样吧。

任何建议表示赞赏!

4

2 回答 2

0

在您的“用户”控制器中,不要在 getProfile() 函数中传递 $username。

你要做的是......你在默认函数中传递 $username 。

例如,您有这个索引函数,默认登录页面是 index()。

在你的路由器中你有这个配置

$route['default_controller'] = "user/index";
$route['(:any)'] = 'user/index/$1';

在你的控制器类中,这应该是这样的......

class User extends CI_Controller {

    public function index($page = 'user') 
    {
        if ($this->uri->segment(2) != '') {
           $data['Profile'] = $this->_getProfile($this->uri->segment(2));
        }

        $this->load->view($page, $data);
    }

    private _getProfile($usernanme)
    {
        // This will return the profile of the user
    }

}

希望这足够清楚...... :)

于 2013-07-28T16:25:41.963 回答
0

以下是 CI Url Rewrite 的示例

首先 .htaccess 摆脱 index.php

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

然后在 config.php 中编辑

$config['index_page'] = '';

然后只是配置文件夹中的控制器和 routes.php 的简单示例

$route['default_controller'] = "main";
$route['404_override'] = '';
$route["contact"] = 'main/contact';
$route["(.*)"] = 'main/tekstovi/$1';

和控制器的例子

class Main extends CI_Controller {


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

    public function home()
    {


        $this->load->view("view_home", $data);

    }


    public function tekstovi()
        {

        $data['results'] = $this->get_db->('TABELNAME',$this->uri->segment(1));
        $this->load->view("view_tekstovi", $data);

    }
    public function contact()
        {

        $this->load->view("view_contact", $data);

    }


}

您可以在 url 末尾添加 .html ,只需编辑 config.php

$config['url_suffix'] = '.html';

这只是一个简单的例子,尝试添加你自己的:)

于 2013-07-29T07:56:15.430 回答