【问题标题】:How to Change URL in CodeIgniter?如何在 CodeIgniter 中更改 URL?
【发布时间】:2010-11-20 01:10:34
【问题描述】:

我必须将 www.sample.com/users/user/username 更改为 www.sample.com/username,但是当我转到 sitename/username 时,它会显示 404 页面。我试过路由,uri->segment,但我无法让它工作。请帮我解决这个问题!

【问题讨论】:

    标签: php codeigniter http-status-code-404


    【解决方案1】:

    将此行添加到您的 config/routes.php 文件中。

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

    请注意,如果您这样做,则必须手动添加例外,其他控制器/操作才能正常工作。所以如果你有一个帖子控制器,你的路由文件现在是:

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

    并且您必须为您拥有的不是用户/用户的每个控制器/操作执行此操作。您还必须防止用户名与其他控制器/操作的名称相同。

    【讨论】:

      【解决方案2】:

      在您的system/application/config/routes.php 中,添加以下内容:

      $route['^(?!<otherController1>|<otherController2>).*'] = "users/user/$1";
      

      请注意,您需要将&lt;otherController1&gt;|&lt;otherController1&gt;替换为您的其他实际控制人的实际名称,例如:

      $route['^(?!welcome|post).*'] = "users/user/$1";
      

      因为您不希望用户控制器的其他方法与用户名冲突,所以我们需要路由所有其他用户控制器方法。例如:

      $route['user/subscribe']            = "user/subscribe";
      $route['user/username_exists']      = "user/username_exists";
      $route['user/email_exists']         = "user/email_exists";
      $route['user/signup']               = "user/signup";
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多