【问题标题】:CodeIgniter htaccess RedirectCodeIgniter htaccess 重定向
【发布时间】:2023-03-20 06:24:01
【问题描述】:

我希望这是一个有人可以回答的简单问题。我正在寻找构建一个 CodeIgniter 应用程序,我可以很容易地在常规 PHP 中构建它。

示例:我想去http://locahost/gregavola 并使用 htaccess 文件将 profile.php?user=gregavola 重写。如何在 CodeIgniter 中做到这一点?

通常在 htaccess 中我可以写 ^(\w+)$ profile.php?user=$1 但这不适用于 CodeIgniter 中的路径。

有什么建议吗?

【问题讨论】:

  • 我讨厌 codeigniter,“让 php 尽可能的混乱”:D

标签: php .htaccess mod-rewrite codeigniter


【解决方案1】:

CodeIgniter 默认关闭 GET 参数;您应该创建一个用户控制器并将请求发送到:

http://localhost/user/info/gregavola

然后在user 控制器中,添加以下存根:

function info($name)
{
    echo $name;
}

从这里您可能想要创建一个视图并将$name 传递给它:

  $data['name'] = 'Your title';
  $this->load->view('user_info', $data);

您可以在CodeIgniter User Guide 中找到所有这些内容,这是一个很好的入门资源。

【讨论】:

  • 我只是举例说明我在 PHP 中所做的事情 - 不确定它在 CodeIgniter 中是如何工作的。如何创建变量视图?基本上-localhost/gregavola-如何重定向到静态页面,以便我弄清楚用户是谁?对于我缺乏使用 CodeIgniter 的经验,我深表歉意 - 但我只是在努力学习。
  • 有没有办法不包括用户/或信息/?所以它的localhost/gregavola
【解决方案2】:

要将localhost/gregavola 映射到给定的控制器和函数,请修改 application/config/routes.php 中的路由文件,如下所示:

$route['(:any)'] = "user/info/$1"

路由按照接收到的顺序运行,因此如果您有其他路由,例如 localhost/application/dosomething/,您需要先包含这些路由,这样整个应用程序中的每个页面都不会成为用户页面.

在此处阅读有关 CI 路线的更多信息:http://codeigniter.com/user_guide/general/routing.html

祝你好运!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-02
    • 2013-05-01
    • 1970-01-01
    • 2012-07-16
    • 2016-07-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多