Codeigniter 中的路由

Posted

技术标签:

【中文标题】Codeigniter 中的路由【英文标题】:Routes in Codeigniter 【发布时间】:2012-09-29 09:43:24 【问题描述】:

我想在基于 CodeIgniter 的应用程序中为用户的个人资料信息提供一个干净的 URL。

请查看下面的 URL 格式。

Actual URL : http://www.mydomain.com/index.php/users/profile/user1

我希望用户喜欢个人网址

http://www.mydomain.com/user1
http://www.mydomain.com/user2
http://www.mydomain.com/user3

URL http://www.mydomain.com/user1 应该在后台执行 http://www.mydomain.com/index.php/users/profile/user1。

我将使用 Route 库从 URL 中删除 index.php。

提前感谢任何形式的帮助。

【问题讨论】:

【参考方案1】:

看看https://www.codeigniter.com/user_guide/general/routing.html

$route['user(:num)'] = "users/profile/user/$1";

如果您的意思是希望 /anyusername 路由到用户控制器,则必须输入:

$route['(:any)'] = "users/profile/$1";

在 routes.php 的底部和其上方的 every 非用户 URL。否则,显然每个 URL 都会被路由到那里。您需要在用户控制器中实现一些机制来引发 404 错误,因为您正在路由上述路由规则中未捕获的所有请求。

【讨论】:

不知何故,我感觉用户的名字可以是字母和数字的任意组合。 (即不是user[0-9] 你的答案是我所期望的,现在这里只有一个问题 - 实际 URL(非用户配置文件 URL)将如何工作或处理?网址可以是mydomain.com/contact。你的意思是我必须写下并路由每个可能的 URL 来克服这种情况? 您不必路由每个特定的 URL,而是您拥有的每个 / 部分。如/contact/:any、/start/:any等 有道理。感谢您的回答。【参考方案2】:

IN config/routes.php

添加这一行

$route['user(:num)'] = "users/profile/$1";

【讨论】:

以上是关于Codeigniter 中的路由的主要内容,如果未能解决你的问题,请参考以下文章

未捕获的 ReferenceError:$ 未定义 - Datepicker - Codeigniter 3

无法让 echo form_open 工作 - CodeIgniter

Codeigniter 中的路由 - 自动

Codeigniter 中的路由

codeigniter 3 - 删除 index.php:Linux 上的错误 404,但在 Windows 上工作正常

codeigniter中的产品详细信息页面路由