【问题标题】:Codeignitor URL ConflictsCodeigniter URL 冲突
【发布时间】:2019-12-06 07:27:09
【问题描述】:

您好,我正在开发使用 codeignitor 构建的 Web 应用程序,我想 显示城市内可用的服务。

为此,我正在尝试创建类似的网址

www.abc.com/mumbai-hotels

孟买是城市名称,酒店是在城市内搜索的服务

现在我的routes.php 文件中有以下代码

$route['(about-us)'] = 'websiteController/aboutus';   
$route['(:any)'] = 'serviceController/info'; 

routes.php 的第一行假设重定向到webiste controlleraboutus 操作。 第二行假设重定向到serviceController 内的信息操作。

但不幸的是,这并没有发生,但它会产生冲突,而且在这两种情况下它仍然是
重定向到服务控制器。

有没有人知道我在这里犯了什么错误,并让我走上正轨

【问题讨论】:

  • 去掉括号(),只放about-us
  • 我试过去掉括号,但还是不行

标签: php codeigniter routes seo


【解决方案1】:

假设 url 如下所示:www.paintes.com/painters-in-chennai 那么路线可以如下所示

    $route['painters-in-(:any)'] ='index/paintersIn/$1';

index.php 控制器中,我将能够像下面这样接收 chennai

    function paintesIn($city_name)
    {
        echo $city_name //OUTPUT WILL BE "chennai"
    }

如果 url 类似于 www.paintes.com/painters-in-mumbai ,那么输出将是 mumbai

根据您的要求,网址如下:www.paintes.com/mumbai-painters 然后你可以像下面这样写

    $route['(:any)-painters'] ='index/paintersIn/$1';

【讨论】:

  • 你好 Mac 这是一个非常好的解决方案,我真的很感激它,还有另一种方法可以在开头加上城市名称并在它之后提供服务,因为这是客户的先决条件。否则我会以某种方式尝试使用您的解决方案
  • 请检查答案的底部,我根据您的要求进行了更新。如果有帮助请点赞
  • 第二个解决方案太好了,但我的应用程序有更多服务,如画家、酒店等等(> 500)。因此,为了避免过度编码,我尝试了 $route['(:any)-(:any)'] = 'inventory/info';。其中第一个括号代表城市名称和第二个服务名称。验证括号的其余部分可以在控制器的功能内完成。不知何故,所有这些想法都来自你的回答,从而支持它。谢谢你的回答。
【解决方案2】:

你可以这样做:

$route['(:any)-(:any)'] = 'serviceController/info';

【讨论】:

  • 是的,我也是这样做的,请阅读我对@Mac Rathod 发表的评论。真的很有帮助,谢谢分享...
猜你喜欢
  • 2012-10-09
  • 2013-06-05
  • 1970-01-01
  • 1970-01-01
  • 2020-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多