【问题标题】:How to rewrite URL using Codeigniter route or htaccess file?如何使用 Codeigniter 路由或 htaccess 文件重写 URL?
【发布时间】:2013-02-03 14:52:23
【问题描述】:

我创建了一个带有 Page 方法的 Home 页面控制器,以便它可以加载内部页面视图。所以我只是将 Page name 作为参数传递给 Page 方法,然后它会加载该特定视图。

E.g. 
http://www.mywebsite.com/home/page/copyright

所以这里 1. home 是控制器 2. page 是方法 3. copyright是传给page()方法的参数

因此,家庭年龄只需使用此 URL 即可加载

http://www.mywebsite.com/home/

内页使用此 url 模式加载

http://www.mywebsite.com/home/page/copyright

现在我想加载内页,假设我使用这个 URL

http://www.mywebsite.com/copyright

它应该从

加载页面
http://www.mywebsite.com/home/page/copyright

如何使用 Codeigniter Route 方法或使用 .htaccess 文件来做到这一点?

提前致谢。

【问题讨论】:

    标签: php .htaccess codeigniter url-rewriting


    【解决方案1】:

    在您的 application/config/routes.php 上:

    $route['copyright'] = 'home/page/copyright';
    

    更好:

    $route['(:any)'] = 'home/page/$1';
    

    因此,如果您导航到 http://www.domain.com/copyright,它会路由到主页/页面/版权
    如果您导航到http://www.domains.com/anything,它会路由到主页/页面/任何内容

    编辑以捕捉任何路线

    尽管在这种情况下,您必须“捕获”您不路由的页面,例如:

    function page($section = ''){
    
     switch($section){
      case 'contact':  
       //display contact form
      break;
    
      case 'copyright':
      //display copyright
      break;
    
      default:
      //404 error
      break;
     }
    }
    

    【讨论】:

    • 同意,但是,OP,我不会为整个站点执行此操作,只是针对 1) 的特殊页面。击败MVC和2)。肯定会填满您的 routes.php 文件并成为维护的负担。
    • 效果很好,我可以接受这种方法,因为我的网站固定页面很少。想知道如果有这么多页面那么应该如何合并?
    猜你喜欢
    • 2017-12-04
    • 1970-01-01
    • 2018-03-15
    • 1970-01-01
    • 1970-01-01
    • 2014-01-27
    • 2013-01-23
    • 2013-12-15
    • 1970-01-01
    相关资源
    最近更新 更多