Php 在codeigniter中重写URL

Php 在codeigniter中重写URL,php,url,codeigniter,mod-rewrite,Php,Url,Codeigniter,Mod Rewrite,如何重写以下codeigniter url localhost/test_project/pages/show_page/11 到 是否有可能进一步减少,如: localhost/test_project/11 谢谢。你有一些。这些是按优先级降序排列的 首先是routes.php,这是处理事情的一般首选方式(已经提供了信息,但仍然是) 您还可以将_resolve方法添加到控制器(这意味着CI需要首先访问您的控制器),并且 最后,您可以重写CI_路由器库,该类实际上返回要转到的路由 说真的,除

如何重写以下codeigniter url

localhost/test_project/pages/show_page/11

是否有可能进一步减少,如:

localhost/test_project/11
谢谢。

你有一些。这些是按优先级降序排列的

  • 首先是
    routes.php
    ,这是处理事情的一般首选方式(已经提供了信息,但仍然是)
  • 您还可以将_resolve方法添加到控制器(这意味着CI需要首先访问您的控制器),并且
  • 最后,您可以重写CI_路由器库,该类实际上返回要转到的路由

  • 说真的,除非你知道自己在做什么,否则不要覆盖CI_路由器。

    你应该编辑这个文件:
    application/config/routes.php

    假设您有一个
    pages
    控制器和一个
    show\u page
    方法,其中接收一个id作为参数(正如您所说的)

    您的URL类似于
    localhost/test\u project/pages/show\u page/11

    我假设该参数始终是一个数字,因此使用所述的通配符,可以将以下内容添加到
    routes.php
    文件中:

    $route['pages/(:num)'] = "pages/show_page/$1";
    
    因此,您的URL将类似于
    localhost/test\u project/pages/3
    。这就像说,如果有人试图访问
    localhost/test\u project/pages/3
    ,他/她实际上指的是
    localhost/test\u project/pages/show\u page/3

    对于像
    localhost/test\u project/3这样的URL,您可以添加以下内容:

    $route['(:num)'] = "pages/show_page/$1";
    
    请参阅中的“设置您自己的路由规则”
    $route['(:num)'] = "pages/show_page/$1";