【问题标题】:How to tell routes.php to NOT to use a controller if a certain string is in the url in CodeIgniter?如果某个字符串在 CodeIgniter 的 url 中,如何告诉 routes.php 不要使用控制器?
【发布时间】:2012-07-28 02:49:48
【问题描述】:

所以,我正在努力解决这个问题。 我得到了这两种类型的 URL:

localhost/en/women

localhost/en/women/products

我试图告诉 CodeIgniter 如果它的 localhost/en/women 使用路由 X,但如果它的 localhost/en/women/products 使用路由 Y,但它总是使用 X 路由。

我尝试使用正则表达式排除 /products 段,如下所示:

$route['^en/women(?!products)(.*)'] = "women";

$route['^en/women/products'] = "products";

但我似乎无法让它工作。

我希望你能在这里得到我想要的东西。 如有任何反馈意见。

【问题讨论】:

    标签: php regex codeigniter routes


    【解决方案1】:
    $route['en/women/?'] = "women";
    $route['en/women/products'] = "products";
    

    应该解决这个问题吗?

    基本上^$默认存在于正则表达式中。

    或者你可能需要一个:

    $route['^en/women/products'] = "products";
    $route['^en/women/?'] = "women";
    

    只要有上面的products,它就会被覆盖。

    【讨论】:

      【解决方案2】:

      使用 CI 的通配符!

      $route['en/women'] = "women";
      $route['en/women/(:any)'] = "products";
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-04
        • 2020-01-27
        • 1970-01-01
        相关资源
        最近更新 更多