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,而是您拥有的每个 /IN config/routes.php
添加这一行
$route['user(:num)'] = "users/profile/$1";
【讨论】:
以上是关于Codeigniter 中的路由的主要内容,如果未能解决你的问题,请参考以下文章
未捕获的 ReferenceError:$ 未定义 - Datepicker - Codeigniter 3
无法让 echo form_open 工作 - CodeIgniter
codeigniter 3 - 删除 index.php:Linux 上的错误 404,但在 Windows 上工作正常