【问题标题】:Routes in CodeigniterCodeigniter 中的路由
【发布时间】: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。

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

【问题讨论】:

    标签: .htaccess codeigniter url-rewriting routing codeigniter-url


    【解决方案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";
    

    【讨论】:

      猜你喜欢
      • 2016-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多