猿问

Codeigniter 使用额外的 url 参数

在 codeigniter 中,我希望不考虑一个 url 段。


example.com/app/dev1/controller/function/id

example.com/app/dev2/controller/function/id

基本网址是


baseUrl = example.com/app

当我使用这种类型的 url 时,codeigniter 将“dev1”视为控制器,将“controller”视为函数,所以我得到了找不到页面的错误。


我想知道我是否可以编写不将第一个参数视为控制器的代码,并从第二个参数开始考虑。


我不能添加基本 url,因为它不是常量,我们可以有 en、fr、nl 等,所以在这种情况下我们有什么帮助我不想添加查询字符串“?”。我们可以使用 .htaccess 做任何事情吗


蛊毒传说
浏览 128回答 3
3回答

长风秋雁

您可以像这样添加一个 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

千万里不及你

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

桃花长相依

您必须正确配置您的 CodeIgniter 路由。例子:$route['dev1/controller/fun/(:num)']  = "dev1/controller/fun/index/$1";见https://blog.biernacki.ca/2011/12/codeigniter-uri-routing-issue-with-controller-folders/
随时随地看视频慕课网APP
我要回答