为了账号安全,请及时绑定邮箱和手机立即绑定

Codeigniter 使用额外的 url 参数

Codeigniter 使用额外的 url 参数

PHP
蛊毒传说 2022-06-11 17:12:51
在 codeigniter 中,我希望不考虑一个 url 段。example.com/app/dev1/controller/function/idexample.com/app/dev2/controller/function/id基本网址是baseUrl = example.com/app当我使用这种类型的 url 时,codeigniter 将“dev1”视为控制器,将“controller”视为函数,所以我得到了找不到页面的错误。我想知道我是否可以编写不将第一个参数视为控制器的代码,并从第二个参数开始考虑。我不能添加基本 url,因为它不是常量,我们可以有 en、fr、nl 等,所以在这种情况下我们有什么帮助我不想添加查询字符串“?”。我们可以使用 .htaccess 做任何事情吗
查看完整描述

3 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

您可以像这样添加一个 URI 路由正则表达式来跳过该dev部分并直接转到所需的控制器:


$route['dev(:num)/([a-z]+)/([a-z]+)/(\d+)'] = '$2/$3/$4'; // rule to match method with parameter

$route['dev(:num)/([a-z]+)/([a-z]+)'] = '$2/$3'; // rule to match method without parameter

或者,如果您没有通用devURI 段,则可以使用:anyrule :


$route['(:any)/([a-z]+)/([a-z]+)/(\d+)'] = '$2/$3/$4'; // rule to match method with parameter

$route['(:any)/([a-z]+)/([a-z]+)'] = '$2/$3'; // rule to match method without parameter



查看完整回答
反对 回复 2022-06-11
?
千万里不及你

TA贡献1784条经验 获得超9个赞

假设 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';


查看完整回答
反对 回复 2022-06-11
?
桃花长相依

TA贡献1860条经验 获得超8个赞

您必须正确配置您的 CodeIgniter 路由。例子:

$route['dev1/controller/fun/(:num)']  = "dev1/controller/fun/index/$1";

https://blog.biernacki.ca/2011/12/codeigniter-uri-routing-issue-with-controller-folders/


查看完整回答
反对 回复 2022-06-11
  • 3 回答
  • 0 关注
  • 127 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号